我正在尝试使用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 :(得分:0)
LogFile.Create()如果你使用这个功能,你可以锁定文件,这样就可以使用了,就像这样 使用(LogFile.Create()){}
之后你可以再次使用该文件