【发布时间】:2010-07-14 17:24:49
【问题描述】:
Finder 使用某种规则来确定是否可以移动或复制项目。拖动项目后,在某些情况下 Finder 会显示拖动复制光标。 API 中的这些规则是否可用?用 Spotlight-Metadata、NSURL 和 NSFileManager 检查:没有结果。
这是我想出的:
- 如果文件夹包含“.localized”文件:文件夹被复制
- 如果文件夹列在 NSSearchPathDirectory 中的任何位置
我的假设对吗?还是与我认为是“锁定”标志的 NSURLIsSystemImmutableKey 或 NSURLIsUserImmutableKey 有关?
此外,还取决于各种其他元数据,例如写权限和锁定标志:
来源:
- 移动只读文件:可以移动
移动只读文件夹需要管理员登录
移动锁定的文件会创建一个副本
- 移动锁定的文件夹会创建一个副本
- 移动带有锁定文件的文件夹:可以移动
移动带有锁定和解锁项目的选择会创建一个副本
移动 Dropbox 只写文件夹:可以移动
Finder 中不存在只写文件
在没有任何权限的情况下移动文件:可以移动(因为移动权限取决于封闭文件夹)
在没有任何许可的情况下移动带有文件的文件夹:移动是可能的(只要是移动,复制它需要登录)
如果文件夹包含“.localized”文件:文件夹被复制
如果文件夹列在 NSSearchPathDirectory(主目录,...)中的任何位置,则会被复制
如果文件夹包含另一本书:可以移动
目标:
- 将项目移动到 Dropbox 会创建一个副本
- 将项目移动到锁定的文件夹中:不可能
- 将项目移动到只读文件夹:要求登录
【问题讨论】:
标签: cocoa macos filesystems