C# 文件内容在windows共享上停止更新
我有一个程序,可以(反复)读取文件的内容,如果新数据到达,则进行一些处理。阅读很简单,就像C# 文件内容在windows共享上停止更新,c#,windows,share,C#,Windows,Share,我有一个程序,可以(反复)读取文件的内容,如果新数据到达,则进行一些处理。阅读很简单,就像 class Reader { FileStream fs_ = null; StreamReader sr_ = null; Reader(string filename) { fs_= new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileSh
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毫秒轮询一次。如果外部参与者重命名/删除该文件,则会有一些代码关闭并重新打开该文件
一般来说,它工作正常,但有时(我在上个月遇到过两次)会出现奇怪的事情。共享上的文件报告了正确的长度,但当尝试从中读取时,会显示字符串的一个半部分以及文件的其余部分,内容为零(0x00,而不是“0”)。此外,当我试图从托管我的程序的同一台机器上通过任何外部文本/二进制编辑器读取文件时,我得到了相同的图片。从网络上的其他机器读取文件时不会出现任何问题,并显示完整内容。问题一直存在,直到我用我的程序重新启动机器
你知道会发生什么事吗?我该怎么解决