我正在尝试使用 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),那么它似乎工作正常。
我错过了什么?