C# 正在创建FileInfo-意外行为
我正试图创建一个带有FileInfo对象的文件,我发现了一些奇怪的行为 以下是我所做工作的要点-C# 正在创建FileInfo-意外行为,c#,io,fileinfo,C#,Io,Fileinfo,我正试图创建一个带有FileInfo对象的文件,我发现了一些奇怪的行为 以下是我所做工作的要点- public void CreateLog() { FileInfo LogFile = new FileInfo(""); if (!LogFile.Directory.Exists) { LogFile.Directory.Create(); } if (!LogFile.Exists) { LogFile.Create(); }
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;
然后我得到一个异常,它说它无法访问该文件,因为其他东西已经在访问它了
但是,如果我在读所有行之前先做一个Thread.Sleep(500),那么它似乎工作得很好
我遗漏了什么?LogFile.Create()如果您使用此函数,您可以锁定文件,这样您就可以像这样使用了使用(LogFile.Create()){} 之后,您可以再次使用该文件