2

这是大错特错了。

我想执行一个大的复制操作;将 250 GB 从我的笔记本电脑硬盘移动到外部驱动器。

OSX Lion 声称这将需要大约五个小时。

经过几个小时的反复,它报告无法复制一个特定文件(无论出于何种原因;我不记得了,我现在没有耐心重复实验)。

在那张纸条上,它保释了。

坦率地说,我感到震惊。

这个问题在这个时代仍然存在,这对我来说几乎是难以置信的。我记得 20 年前在 Windows 3.1 中遇到过同样的情况。

对于苹果(或微软)的人来说,以跳过失败的方式实现文件复制,将失败的操作列表即时写入标准错误有多难?该实现会有多大用处?(顺便说一句,这两个问题都是修辞性的;只是表达了我完全的困惑;请不要回答它们,除非通过评论或对实际问题的回答进行补充,如下:)。

更重要的是(这是我的实际问题),我如何在 OS X 中自己实现这个?

PS我对这里的所有解决方案持开放态度:程序化/脚本/第三方软件

4

1 回答 1

6

我听到并理解你的咆哮,但这几乎是一个超级用户类型的问题,而不是一个编程问题(只有你说你想自己实现这个事实才能保存)。

从描述来看,当 Finder 无法复制一个特定文件时,它听起来像是被保释了(我的猜测是它正在为某些特权文件夹寻找管理员和/或 root 权限)。

对于像这样的大量副本,您可以使用终端命令行:

例如

cp

或者

sudo cp

使用“-R”(即使检测到错误也会继续复制 - 除非您使用“传统”模式)或“-n”(如果文件已存在于目的地,则不要复制)之类的选项。man cp您可以通过在终端命令行输入“”来查看所有可能的选项。

如果您真的想以编程方式执行此操作,则在NSWorkspaceperformFileoperation:source:destination:files:tag:方法(为您链接的文档,查看常量)中有选项。您还可以通过“ ”和它的方法NSWorkspaceCopyOperation做更多低级的事情,但这真的很残酷-力量接近那里。NSFileManagercopyItemAtPath:toPath:error:

于 2012-04-26T00:06:35.823 回答