类似于应用程序文件夹,我想限制我的应用程序的用户重命名一些文件夹(由我的应用程序创建)。 那么任何 cocoa/Objective-c/c++ API 都可以实现相同的目的吗?
最佳答案
阻止 /Applications
重命名的原因是它具有拒绝删除的 ACL(访问控制列表)。实际的 ACL 是:
group:everyone deny delete
重命名某物等同于删除其旧名称并添加其新名称,因此无法删除的任何内容都无法重命名。事实上,这是一般原则——让它不可删除。该 ACL 只是众多方法中的一种。
请记住,只要用户拥有该文件夹,他们就可以删除 ACL 并删除/重命名他们想要的内容。如果他们不拥有它,您是如何创建它的? /Applications
由 root 拥有,并以这种方式获得,因为 OS X 安装程序(具有 root 权限)以这种方式创建它。 (甚至不要考虑走同一条路。仅仅为了满足您的整洁感而请求 root 权限是笨拙的。)
更重要的是:您为什么要关心用户是否重命名了文件夹?是他们的电脑。要么总是用你想要的名字来寻找它(这样重命名就和删除它一样,只要你的应用关心),或者更好地考虑你的用户并让他们重命名它以满足 他们的整洁感。为它保留一个别名,以便您可以继续使用新名称使用它。
关于c++ - 限制文件夹重命名 cocoa ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28314554/