C++ 限制文件夹重命名

C++ 限制文件夹重命名,c++,objective-c,c,macos,cocoa,C++,Objective C,C,Macos,Cocoa,与应用程序文件夹类似,我希望限制应用程序的用户重命名某些文件夹(由我的应用程序创建)。 因此,任何cocoa/Objective-c/c++API都可以实现相同的功能?阻止/Applications重命名的原因是它使用了拒绝删除的ACL(访问控制列表)。实际ACL为: group:everyone deny delete 重命名某物等同于删除其旧名称并添加其新名称,因此任何无法删除的内容都无法重命名。事实上,这是一般原则,只是让它不可删除。ACL只是实现这一点的众多方法之一 请记住,只要用户拥

与应用程序文件夹类似,我希望限制应用程序的用户重命名某些文件夹(由我的应用程序创建)。
因此,任何cocoa/Objective-c/c++API都可以实现相同的功能?

阻止
/Applications
重命名的原因是它使用了拒绝删除的ACL(访问控制列表)。实际ACL为:

group:everyone deny delete

重命名某物等同于删除其旧名称并添加其新名称,因此任何无法删除的内容都无法重命名。事实上,这是一般原则,只是让它不可删除。ACL只是实现这一点的众多方法之一

请记住,只要用户拥有该文件夹,他们就可以删除ACL并删除/重命名其核心内容。如果他们不拥有它,你是如何创造它的
/Applications
由root所有,之所以如此,是因为OSX安装程序(具有root权限)以这种方式创建了它。(甚至不要考虑走同一条路线。请求根权限只是为了满足你的整洁感。”
更重要的是:如果用户重命名文件夹,为什么您会在意?这是他们的电脑。要么总是按照你想要的名字来查找它(这样重命名它就等于在你的应用程序关心的范围内删除它),要么更好地为你的用户着想,让他们重命名它以满足他们的整洁感。为它保留一个别名,以便您可以在新名称下继续使用它。

您可以锁定该文件夹。请使用NSFileManager尝试使用文件夹的NSFileImmutable属性,即ACL只是实现此目的的多种方法之一,任何方法都可以使该用户无法删除ACL(我知道我无法限制管理员/root)