我正在构建一个将数据连续写入文件的应用程序。当我启动程序时,文件被创建并开始被写入。
但是我注意到有时如果我打开了Windows资源管理器,我的应用程序会拒绝访问该文件,并且会引发错误。
fs = new System.IO.FileStream(location,
System.IO.FileMode.Open,
System.IO.FileAccess.Write,
System.IO.FileShare.ReadWrite);
那么如何限制对此文件的访问权限,以便只有我的应用可以访问它,而不是任何其他程序?
答案 0 :(得分:1)
您可以将最后一个参数从System.IO.FileShare.ReadWrite
更改为System.IO.FileShare.None
。
只要此流处于打开状态,就会将文件锁定在location
中,除了您自己的FileStream
之外,其他任何应用都无法读取,修改或删除该文件。
事实上,这不仅适用于其他应用 - 甚至您自己的应用也无法打开该文件的另一个FileStream
。所以只要你需要保持开放,但不要忘记在使用后正确处理FileStream
。