运行

时间:2016-10-09 13:56:09

标签: c# filestream file-access

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

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

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

1 个答案:

答案 0 :(得分:1)

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

只要此流处于打开状态,就会将文件锁定在location中,除了您自己的FileStream之外,其他任何应用都无法读取,修改或删除该文件。

事实上,这不仅适用于其他应用 - 甚至您自己的应用也无法打开该文件的另一个FileStream。所以只要你需要保持开放,但不要忘记在使用后正确处理FileStream