创建FileInfo - 意外行为

时间:2012-07-11 14:05:32

标签: c# io 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),那么它似乎工作正常。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

LogFile.Create()如果你使用这个功能,你可以锁定文件,这样就可以使用了,就像这样 使用(LogFile.Create()){}

之后你可以再次使用该文件