我正在编写一个C#应用程序来读取另一个应用程序保持打开的文件.正如你们中的一些人可能猜到的那样,我得到的只是IOExceptions,因为"该文件正由另一个进程使用".我试过调整一下File.Open(); 这是我目前的尝试:
FileStream fsIn = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
Run Code Online (Sandbox Code Playgroud)
(我知道,文件共享标志是其他进程更有意义将随后访问该文件,但我已经用也无妨尝试.)
令我困惑的是Notepad.exe会打开文件就好了.在我深入了解Filemon以获取更多线索之前,您是否知道如何以记事本的方式打开文件?谢谢.
你几乎拥有它.你真的想要FileShare.ReadWrite:
FileStream fsIn = File.Open(fileName,
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite);
Run Code Online (Sandbox Code Playgroud)
FileShare.Read禁止其他进程写入该文件. FileShare.ReadWrite允许这个.
写允许随后打开文件进行写入.如果未指定此标志,则在文件关闭之前,任何打开文件以进行写入(通过此进程或其他进程)的请求都将失败.但是,即使指定了此标志,仍可能需要其他权限才能访问该文件.
ReadWrite允许随后打开文件进行读写.如果未指定此标志,则在文件关闭之前,任何打开文件以进行读取或写入(通过此进程或其他进程)的请求都将失败.但是,即使指定了此标志,仍可能需要其他权限才能访问该文件.
这也是我的倒退.