我试图找出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应用程序池的不同线程中。
答案 0 :(得分:0)
对两个流使用FileShare.ReadWrite
。
FileShare.Read
基本上意味着:禁止任何其他写句柄,并且由于第一行有一个,第二行失败。