2010-07-09 63 views
1

Finder使用某种规则来确定项目是否可以移动或将被复制。拖动项目后,在某些情况下,Finder会显示一个拖动副本光标。 API中的这些规则是否可用?使用Spotlight-Metadata,NSURL和NSFileManager进行检查:无结果。Mac OS X文件/文件夹管理:何时复制而不是移动

这就是我想出了:

  • 如果一个文件夹中包含一个“.localized”文件:如果一个文件夹是在NSSearchPathDirectory

任何地方列出的文件夹复制

  • 我的假设是否正确?或者它与NSURLIsSystemImmutableKey或NSURLIsUserImmutableKey,我认为是“锁定”标志?

    此外根据各种其他元数据等写权限和锁定标志:

    ON SOURCE:

    • 移动只读文件:举动能够
    • 移动只读文件夹需要登录从管理员

    • 移动锁定文件创建副本

    • 移动锁定的文件夹创建一个副本
    • 一个文件夹移动与内锁定的文件:此举可能
    • 移动既锁定和解锁项的选择会创建一个副本

    • 移动的Dropbox只写文件夹:此举可能

    • 只写文件并不在Finder中

    • 存在移动文件没有任何权限:此举是可能的(如转移权限取决于enclo唱文件夹)

    • 的文件夹与文件移动没有任何权限:此举是可能的(只要它一动,对复制它要求登录)

    • 如果一个文件夹中包含一个“.localized”文件:该文件夹被复制

    • 如果某个文件夹列在NSSearchPathDirectory(主目录,...的任何位置,...)它被复制

    • 如果一个文件夹包含另一本书:此举可能

    目标:

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

    0

    *)关于Finder:如果文件或目录被从一个卷拖到另一个卷上,它将(默认情况下)被复制。如果在同一卷上执行操作,则文件或文件夹将(默认情况下)被移动。作为对卷进行文件操作的一个便笺:再次在不同文件系统中“移动”事物的行为不同。通常情况下,移动文件或目录并不意味着之后会“复制”和“删除”原始文件 - 只有文件系统中的链接通常会被修改,但在这个时候,它的行为完全如此。

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

    +0

    谢谢你的回答。关于写入权限的第二点并不完全正确:可以在没有写入权限的情况下移动文件。它依赖于封闭的文件夹。我在我的问题中增加了更多发现。所以显然没有API在实际执行之前找到它。 Apple文档说:尝试,然后优雅地处理错误。 – 2010-07-14 09:28:11

    相关问题