2014-04-24 2 views
0

파일에 쓰는 동안 파일을 생성하고 있습니다. 파일을 만든 후 처음으로 파일을 열지 만 오류가 표시됩니다.오류가 발생했습니다.

"The process cannot access the file 'C:\ProjectWork\Websites3\LogsArpita\ErrorLogs\Error_Log_24_4_2014.txt' because it is being used by another process."

어떤 의미입니까? 추가 쓰기 작업을 위해 즉시 파일을 열 수 있습니까? 나는 다음 코드를 시도했다.

FileName = String.Concat("Error_Log_", DateTimeStamp + ext); 

if (!File.Exists(Server.MapPath("~/LogsArpita/ErrorLogs/" + FileName))) 
{ 
    File.Create(Server.MapPath("~/LogsArpita/ErrorLogs/" + FileName)); 
} 

//Error occured here, below line 
StreamWriter tw = new StreamWriter(Server.MapPath("~/LogsArpita/ErrorLogs/" + FileName), true); 

tw.WriteLine(""); 
tw.Write("\"" + DateTimeStampLog + "\","); 
tw.Write("\"Assignments.aspx\","); 
tw.Write("\"" + ErrorMessage + "\","); 
tw.Write("\"" + TransactVariable + "\""); 
tw.Close(); 

답변

2

StreamWriter 생성자는 파일을 생성합니다 File.Create 때문에 이것은 MSDN 설명서의 말씀입니다

존재하지 않는 경우는 필요가 없습니다

Initializes a new instance of the StreamWriter class for the specified file by using the default encoding and buffer size. If the file exists, it can be either overwritten or appended to. If the file does not exist, this constructor creates a new file.

+1

또한'File.Create'을 메서드는 파일 스트림을 만들고 여는 동시에 열린 스트림을 반환합니다. 따라서'File.Create'를 사용할 때 반환 된 스트림을 처리해야합니다. 그렇지 않으면 파일을 열 때마다 실패하게됩니다. 대신에, 당신은 단지'StreamWriter' 생성자를 사용하여 그것의 작업을 할 수 있습니다. –

관련 문제