文件内容停止在Windows共享上更新

时间:2012-01-11 09:52:04

标签: c# windows share

我有一个程序(反复地)读取文件的内容,如果有新数据到达,则进行一些处理。阅读非常简单,类似于

class Reader
{
    FileStream fs_ = null;
    StreamReader sr_ = null;

    Reader(string filename)
    {
        fs_= new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete);
        sr_ = new StreamReader(fs_);
    }

    void Read()
    {
        string line;
        while (line = sr_.ReadLine())
        {
            // ...
        }
    }
}

方法Read()每300 ms轮询一次。有一些代码可以在外部参与者重命名/删除的情况下关闭并重新打开文件。

一般来说,它运作正常,但有时候(我上个月遇到过这两次)会出现奇怪的事情。报告正确长度的共享上的文件,但在尝试从中读取时,显示一个半字符串和其余文件,其中包含零(0x00,而不是'0')内容。此外,当我尝试通过托管我程序的同一台机器上的任何外部文本/二进制编辑器读取文件时,我得到了相同的图片。从网络上的其他机器上读取文件没有任何问题,并显示完整的内容。在我使用我的程序重新启动计算机之前,问题仍然存在。

知道发生了什么,我该如何解决?

0 个答案:

没有答案