Win32:防止文件夹修改?

Posted

技术标签:

【中文标题】Win32:防止文件夹修改?【英文标题】:Win32: Prevent folder modification? 【发布时间】:2010-12-07 23:15:51 【问题描述】:

我想确保没有其他进程更改特定文件夹的内容。我想阻止其他进程在文件夹中创建、删除或修改文件。此外,我希望将此限制嵌套到子文件夹中。

我可以通过枚举文件夹的内容并在每个文件上调用 CreateFile 来接近我想要的。这样做的问题在于它不会阻止新文件的创建,并且需要我获取 lots 个句柄。

有没有更简单的方法来获得我想要的东西?


更新:解决一些 cmets,我想做的是防止在我的程序运行时修改。如果文件在运行之间被修改,那没关系。

就 ACLS 而言,该应用具有对文件夹内所有文件的读取权限。

【问题讨论】:

这行不通。目录访问由用户帐户权限控制,仅此而已。 我会让它不可见并设置帐户权限。可能有一种方法可以做到这一点,尽管像 windows 会发出警告,说要塞满 windows 文件夹。 您确定要这样做吗?如果你的程序在锁到位时死掉(或被强制终止)怎么办? 将文件锁定为单一访问仅在您的应用运行时才有效,也许这就足够了? 使用 ACL 分配您的应用程序以特定用户身份运行,并且只有该用户有权访问文件系统可能会提供更好的控制 【参考方案1】:

ACL 将是最好的方法,但如果您由于某种原因无法使其正常工作(您对细节相当了解),那么请使用文件系统过滤器驱动程序。请注意,这不是很简单。也不是火箭科学,但您必须格外小心驱动程序开发。

http://www.microsoft.com/whdc/driver/filterdrv/default.mspx

【讨论】:

以上是关于Win32:防止文件夹修改?的主要内容,如果未能解决你的问题,请参考以下文章

system权限怎么获得win10

Python获取或修改 Windows 系统中文件的创建时间修改时间和访问时间(os | win32file)

Python获取或修改 Windows 系统中文件的创建时间修改时间和访问时间(os | win32file)

Python获取或修改 Windows 系统中文件的创建时间修改时间和访问时间(os | win32file)

Win32 WriteFile 因防病毒不返回

Win7系统修改hosts文件不能保存的解决方法