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) を実行すると、問題なく動作するようです。
私は何が欠けていますか?