1

我正在尝试编写一个小程序,使不同计算机上的用户能够同时修改同一个文件(在所有用户都可以访问的目录中)并查看其他用户同时所做的更改。每次用户修改文件时,更改都会保存到文件 (.txt) 中,我使用 FileSystemWatcher 检测更改并使用更改更新其他用户。

我注意到如果我在程序运行并访问同一个文件时尝试使用记事本修改和保存文件,我会收到一条消息,说无法访问该文件,因为另一个进程正在访问它。我的问题是,如果在我的程序开发并在不同的计算机上运行之后,我会收到相同的错误消息吗?如果是的话,有没有办法解决这个问题?

提前致谢。

4

1 回答 1

1

这是可能的,但您需要System.IO.File.Open()像这样使用完整版本,它允许其他进程打开同一个文件进行读写访问。

using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream f = File.Open("c:\file.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
        }
    }
}
于 2013-01-08T17:31:01.913 回答