2012-07-11 3 views
0

FileInfo 개체를 사용하여 파일을 만들려고하는데 이상한 동작이 발생합니다. 이 로그 파일의 길이를 확인합니다 때 파일이 (내가 확인 - 그것은 존재) 존재하지 않는다고 말한다, 그러나FileInfo 만들기 - 예기치 않은 동작

public void CreateLog() 
    { 
     FileInfo LogFile = new FileInfo(""); 

     if (!LogFile.Directory.Exists) { LogFile.Directory.Create(); } 
     if (!LogFile.Exists) { LogFile.Create(); } 

     if (LogFile.Length == 0) 
     { 
      using (StreamWriter Writer = LogFile.AppendText()) 
      { 
       Writer.WriteLine("Quotes for " + Instrument.InstrumentID); 
       Writer.WriteLine("Time,Bid Size,Bid Price,Ask Price,Ask Size"); 
      } 
     } 
    } 

- 여기

내가 뭐하는 거지의 요지입니다 .

나는 다음과 LogFile.Length을 대체하는 경우 :
File.ReadAllLines(LogFile.FullName).Length; 

그때 나는 다른 무언가가 이미 액세스하고 있기 때문에이 파일을 액세스 할 수 없다는 예외가.

그러나 ReadAllLines을 수행하기 전에 Thread.Sleep (500)을 수행하면 정상적으로 작동하는 것 같습니다.

무엇이 누락 되었습니까?

답변

0

LogFile.Create() 당신이 사용할 수있는 당신이 그 후에 사용하여이
처럼 사용 (LogFile.Create()) {}

을 사용할 수 있도록 사용자가이 기능, 당신은 파일을 잠글 수있는 경우 파일 다시