【发布时间】:2010-12-07 23:15:51
【问题描述】:
我想确保没有其他进程更改特定文件夹的内容。我想阻止其他进程在文件夹中创建、删除或修改文件。此外,我希望将此限制嵌套到子文件夹中。
我可以通过枚举文件夹的内容并在每个文件上调用 CreateFile 来接近我想要的。这样做的问题在于它不会阻止新文件的创建,并且需要我获取 lots 个句柄。
有没有更简单的方法来获得我想要的东西?
更新:解决一些 cmets,我想做的是防止在我的程序运行时修改。如果文件在运行之间被修改,那没关系。
就 ACLS 而言,该应用具有对文件夹内所有文件的读取权限。
【问题讨论】:
-
这行不通。目录访问由用户帐户权限控制,仅此而已。
-
我会让它不可见并设置帐户权限。可能有一种方法可以做到这一点,尽管像 windows 会发出警告,说要塞满 windows 文件夹。
-
您确定要这样做吗?如果你的程序在锁到位时死掉(或被强制终止)怎么办?
-
将文件锁定为单一访问仅在您的应用运行时才有效,也许这就足够了?
-
使用 ACL 分配您的应用程序以特定用户身份运行,并且只有该用户有权访问文件系统可能会提供更好的控制