文件只读访问,无论锁定(C#)

prm*_*mph 7 c# io

如何打开(使用c#)已打开的文件(例如,在MS Word中)?我想如果我打开文件进行读取访问,例如

FileStream f= new FileStream('filename', FileMode.Open, FileAccess.ReadWrite);
Run Code Online (Sandbox Code Playgroud)

我应该成功,但我得到一个例外:

"该进程无法访问该文件,因为它已锁定..."

我知道必须有一种方法来读取文件而不管其上是否有任何锁定,因为我可以使用Windows资源管理器复制文件或使用其他程序(如记事本)打开它,即使它在WORD中打开也是如此.

但是,似乎C#中的File IO类都不允许我这样做.为什么?

IAm*_*rey 7

您想设置FileAccess = Read和FileShare = ReadWrite.这是一篇很棒的文章(以及为什么解释):

http://coding.infoconex.com/post/2009/04/How-do-I-open-a-file-that-is-in-use-in-C.aspx