在.NET中共享用于读写的文件

时间:2014-07-02 19:54:39

标签: .net

我试图找出FileAccess / FileShare组合,它允许我打开一个文件进行阅读,然后打开它进行写入。到目前为止,测试代码的下两行在第二行给我UnauthorizedAccessException

Stream s1 = File.Open(name, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Stream s2 = File.Open(name, FileMode.Open, FileAccess.ReadWrite, FileShare.Read);

在现实生活中,我有一个Web应用程序(服务器端)使用某些ZIP和数据。几个处理程序正在从此存档中获取文件,并且一个处理程序尝试更新它。因此在实践中,这两行最有可能位于同一IIS应用程序池的不同线程中。

1 个答案:

答案 0 :(得分:0)

对两个流使用FileShare.ReadWrite

FileShare.Read基本上意味着:禁止任何其他写句柄,并且由于第一行有一个,第二行失败。