我正在编写一个小型 Mac 应用程序,它具有重命名文件或目录的功能。我想确定一个文件或目录是否可以重命名,如果不可重命名,我将不允许用户重命名它,例如某些系统目录:主目录中的“Downloads”、“Documents”或“Desktop”目录。问题是我如何确定它?
最佳答案
您列出的所有目录都可以重命名。 “不能重命名”和“大多数情况下不应该重命名”之间有很大区别。
如果您想要知名目录的列表(在大多数情况下不应重命名),它们列在 File System Programming Guide 中。 。用户主目录下具体有:
- 应用程序 - 包含特定于用户的应用程序。
- 桌面 - 包含用户桌面上的项目。
- 文档 - 包含用户文档和文件。
- 下载 - 包含从互联网下载的文件。
- 库 - 包含用户特定的应用文件(隐藏在 OS X v10.7 及更高版本中)。
- 电影 - 包含用户的视频文件。
- 音乐 - 包含用户的音乐文件。
- 图片 - 包含用户的照片。
- 公开 - 包含用户想要分享的内容。
- 网站 - 包含用户个人网站使用的网页。 (必须启用网络共享才能显示这些页面。)
在最新版本的 OS X 中,有些系统级目录实际上无法重命名(由于系统完整性保护)。您可以通过检查 com.apple.rootless
的扩展属性来检测这些,例如使用 xattr
:
$ xattr /System/
com.apple.rootless
请参阅 attributesOfItemAtPath:error:
以使用 NSFileManager
读取这些属性。
关于swift - 如何判断文件或目录是否可以在 OSX 中重命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35971843/