如何判断是否可以在OSX中重命名文件或目录?

时间:2016-03-13 15:06:00

标签: swift macos nsfilemanager

我正在编写一个小型Mac应用程序,它具有重命名文件或目录的功能。我想确定是否可以重命名文件或目录,如果它不可重命名,我将不允许用户重命名它,例如某些系统目录:主目录中的“Downloads”,“Documents”或“Desktop”目录。问题是如何确定它?

1 个答案:

答案 0 :(得分:0)

您列出的所有目录都可以重命名。 “无法重命名”和“大多数情况下不应重命名”之间存在很大差异。

如果您想要知名目录列表(在大多数情况下不应该重命名),它们会列在File System Programming Guide中。用户主目录中的具体内容是:

  • 应用程序 - 包含特定于用户的应用程序。
  • 桌面 - 包含用户桌面上的项目。
  • Documents - 包含用户文档和文件。
  • 下载 - 包含从互联网下载的文件。
  • 库 - 包含特定于用户的应用程序文件(隐藏在OS X v10.7及更高版本中)。
  • 电影 - 包含用户的视频文件。
  • 音乐 - 包含用户的音乐文件。
  • 图片 - 包含用户的照片。
  • 公开 - 包含用户想要分享的内容。
  • 网站 - 包含用户个人网站使用的网页。 (必须启用Web共享才能显示这些页面。)

在OS X的最新版本中,存在实际上无法重命名的系统级目录(由于系统完整性保护)。您可以通过检查com.apple.rootless的扩展属性来检测这些属性,例如使用xattr

$ xattr /System/
com.apple.rootless

请参阅attributesOfItemAtPath:error:以使用NSFileManager阅读这些属性。