我希望我的应用程序创建的文件夹的所有权只属于我的应用程序。 这是因为我将应用程序的数据链接到文件夹路径。 所以这两种解决方案中的任何一种都适合我:
- 不允许任何人修改我的应用程序创建的文件夹。 只有我的应用程序可以删除/重命名该文件夹。修改它 通过 Windows 资源管理器应该需要管理员权限。
- 如果上述解决方案不可行,至少应将更改通知我的应用程序,以便更新我的应用程序的链接。
问题是在Windows中是否可以做到这一点? 我觉得语言没有发挥作用,但如果需要,我仍在使用 C++ 中的 Qt 来开发我的应用程序。
编辑:现在有两种情况被通知:
一个。当我的应用程序正在运行并且文件夹被修改时。
当我的应用程序未运行且文件夹被修改时(如果 Windows 维护文件夹更改的日志文件,这可能会实现。我的应用程序可以读取此日志文件并了解文件夹中的更改)。
其实我是想专门问case b的,现在看了答案感觉case b可能通知不到。
最佳答案
Windows 中的安全性是基于帐户的,而不是基于应用程序的。文件夹不是“由您的应用程序创建的”;它是由运行您的应用程序的用户创建的。
至于被通知,保持开放句柄即可。这将防止文件夹在您运行时被更改。显然,当您不运行时,您甚至无法收到通知。
[编辑] 当您的应用未运行时,您需要 NTFS change journals .
关于c++ - 在 Windows 中修改文件夹时通知我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126731/