这行代码:
using (FileStream fs = File.Open(src, FileMode.Open, FileAccess.Read, FileShare.Read))
抛出异常:
System.IO.IOException: 由于文件正在被另一个进程使用,因此无法访问文件“X”。
当我将该行替换为:
File.Copy(src, dst, true);
using (FileStream fs = File.Open(dst, FileMode.Open, FileAccess.Read, FileShare.Read))
它有效。
但是为什么我可以复制,这显然读取了整个文件的内容,而被限制直接读取文件呢?有没有解决方法?
FileShare.ReadWrite
,则如果另一个进程已经以写访问的方式打开文件,而您只允许共享读访问,则您的请求将失败。 - Sami Kuhmonen