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

本文关键字:访问 用户 文件 程序 运行时 其他 | 更新日期: 2023-09-27 18:12:10

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

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

只要此流处于打开状态,并且除您自己的FileStream外,任何其他应用程序都无法读取、修改或删除该文件,则会以独占方式锁定location中的文件。

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