c++ - 限制文件夹重命名 cocoa

标签 c++ objective-c c macos cocoa

 Applications folder

类似于应用程序文件夹,我想限制我的应用程序的用户重命名一些文件夹(由我的应用程序创建)。 那么任何 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/

相关文章:

ios - 应用程序终止时处理推送通知

c++ - 英尺到米的单位换算

c++ - 通过cmake链接到静态库

ios - 当手指被拖出其边界时,停止 UIButton 为 'active'

ios - 如何确保绘图操作在 Mac 上是像素对齐的?

c - C 中整数的错误乘法

c - 格式指定类型 'char *' 但参数的类型为 'char

c - 在C中如何将局部函数变量值传递给另一个函数并无错误地打印值

c++ - 无法在二维矩阵( vector 的 vector )中设置值

c++ - YARN下的C/C++程序