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

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

FileStream f= new FileStream('filename', FileMode.Open, FileAccess.ReadWrite); 

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

“该进程无法访问该文件,因为它已被锁定…”

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

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

您想设置FileAccess = Read和FileShare = ReadWrite。 这是一篇很棒的文章(以及对原因的​​解释):

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

您的代码使用的是FileAccess.Read * Write *标志。 尝试阅读。