Mac OS X文件/文件夹管理:何时复制而不是移动

时间:2010-07-09 16:42:55

标签: cocoa macos filesystems

Finder使用某种规则来确定是否可以移动或复制项目。拖动项目后,在某些情况下,Finder会显示拖动复制光标。 API中的这些规则是否可用?使用Spotlight-Metadata,NSURL和NSFileManager进行检查:无结果。

这就是我想出的:

  • 如果文件夹包含“.localized”文件:文件夹已复制
  • 如果文件夹列在NSSearchPathDirectory中的任何位置

我的假设是对的吗?或者它与我认为是“锁定”标志的NSURLIsSystemImmutableKey或NSURLIsUserImmutableKey有关吗?

此外,还取决于其他各种元数据,如写权限和锁定标志:

ON SOURCE:

  • 移动只读文件:可以移动
  • 移动只读文件夹需要从管理员

  • 登录
  • 移动锁定的文件会创建副本

  • 移动锁定的文件夹会创建副本
  • 移动内置锁定文件的文件夹:可以移动
  • 使用已锁定和未锁定的项目移动选区会创建副本

  • 移动Dropbox writeonly文件夹:可以移动

  • Finder中不存在writeonly文件

  • 移动没有任何权限的文件:可以移动(因为移动权限取决于封闭文件夹)

  • 使用没有任何权限的文件移动文件夹:移动是可能的(只要移动,复制它就要求登录)

  • 如果文件夹包含“.localized”文件:文件夹已复制

  • 如果文件夹列在NSSearchPathDirectory(主目录,...)中的任何位置,则会将其复制

  • 如果文件夹包含另一本书:可以移动

ON TARGET:

  • 将项目移动到Dropbox中会创建副本
  • 将项目移动到锁定的文件夹:不可能
  • 将项目移动到只读文件夹:要求登录

1 个答案:

答案 0 :(得分:0)

*)关于Finder:如果正在将文件或目录从一个卷拖到另一个卷,则会(默认情况下)将其复制。如果正在同一卷上执行操作,则会(默认情况下)移动文件或文件夹。作为对卷上文件操作的旁注:在不同文件系统中“移动”的内容再次表现不同。通常情况下,移动文件或目录并不意味着之后“复制”和“删除”原始文件 - 只有文件系统中的链接通常会被修改,但在这里,它实际上的行为与此类似。

*)此外,请注意对象权限:如果对该源文件或目录(及其内容)的文件系统权限不允许对其执行写入操作,则将再次复制它。