运行 时限制其他程序和用户访问某些文件
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
。
我正在构建一个将数据连续写入文件的应用程序。当我启动程序时,文件被创建并开始被写入。
但是我注意到 有时 如果我打开 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
。