运行 时限制其他程序和用户访问某些文件

Restrict Access To Certain File From Other Programs And Users While Running

我正在构建一个将数据连续写入文件的应用程序。当我启动程序时,文件被创建并开始被写入。
但是我注意到 有时 如果我打开 Windows Explorer,我的应用程序将拒绝访问该文件,并引发错误。

fs = new System.IO.FileStream(location, 
                              System.IO.FileMode.Open, 
                              System.IO.FileAccess.Write, 
                              System.IO.FileShare.ReadWrite);

那么如何限制对该文件的访问,以便只有我的应用程序可以访问它,而其他任何程序都不能?

您可以将最后一个参数从 System.IO.FileShare.ReadWrite 更改为 System.IO.FileShare.None

只要此流处于打开状态,就会将文件锁定在 location 中,并且除了您自己的 FileStream.

之外,其他任何应用程序都无法读取、修改或删除该文件

事实上,这不仅适用于其他应用程序 - 即使您自己的应用程序也无法打开该文件的另一个 FileStream。因此,只要您需要,请保持打开状态,但不要忘记在使用后正确处理 FileStream