如何识别文本文件不使用任何其他进程

时间:2018-01-24 07:26:03

标签: c# filestream

我有2个Windows服务。第一个Windows服务将比较2个文本文件,它将生成一个比较结果文件。创建结果文件后,FileSystemWatcher将捕获文件create事件并触发第二个Windows服务。然后第二个Windows服务开始读取结果文件的内容。有一种情况是创建了比较结果文件,但其内容仍在写入文件。 因此,第二个Windows服务给我一个错误,该文件正由另一个进程消耗。为了防止我使用以下方法。

private FileContent GetFileContent(string path)
{
        FileContent f = null;
        try
        {
            XmlSerializer serializer = new XmlSerializer(typeof(FileContent));
            FileStream fileStream = new FileStream(path, FileMode.Open);
            f =  (FileContent)serializer.Deserialize(fileStream);
            fileStream.Dispose();

        }
        catch (Exception ex)
        {
           f = GetFileContent(path);
        }
        return f;
}

除了这种方法之外,还有什么方法可以等到文件被释放出来“然后读取它的当前消费过程吗?”

0 个答案:

没有答案