如何使用进度反馈递归复制文件夹,同时保留OS X上的所有元数据?

时间:2015-09-17 09:10:11

标签: macos cocoa file-copying

我需要将文件夹从一个位置复制到另一个位置,同时为我的用户提供进度条

我唯一可以找到的API是copyfile(3)。我实现了这个并且结果几近完美,但是我发现Finder注释和与原始相关的标签都没有被复制过。我不仅需要复制它们,而且还担心其他元数据没有被复制,我还不知道。

请注意,我在copyfile上设置所有适当的标志以复制元数据。

如果不使用可靠的技术(如Applescript桥接器)在副本末尾使用Finder读取/写入注释,我怎样才能实现我的目标?

更新

经过大量研究后,我发现注释和标签都是复制在文件的扩展属性中。但是,评论拒绝显示在Finder中。

我看到它提到评论存储在.DS_Store中。作为测试,我删除了.DS_Store文件,然后重新启动Finder以便重新生成它。评论仍然没有出现。

Finder需要做些什么来识别这些元数据?

1 个答案:

答案 0 :(得分:0)

注意:此答案假定您对正确的评论等没有被复制,但尚未经过验证。

source form from Apple中提供了

copyfile。您可能需要稍微调整它以实际编译它。完成后,您可以修改以添加所需的功能。

HTH