【问题标题】:Restrict Access To Certain File From Other Programs And Users While Running在运行时限制其他程序和用户对某些文件的访问
【发布时间】:2016-10-09 13:56:09
【问题描述】:

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

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

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

【问题讨论】:

  • “抛出一个错误” - 什么错误?
  • 不记得确切的错误,但它接近“访问文件被拒绝”。

标签: c# filestream file-access


【解决方案1】:

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

只要此流处于打开状态,并且除您自己的 FileStream 外,没有其他应用程序可以读取、修改或删除该文件,就会将文件锁定在 location 中。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多