将文件复制到另一个文件夹时,如何解决applescript中的〜10006错误?

时间:2019-07-11 17:16:59

标签: applescript

当尝试将文件复制到另一个文件夹时,脚本会引发〜10006错误。这仅在某些Mac mini计算机上发生,而在其他Mac上则可以正常工作。我不知道为什么它可以在某些计算机上运行,​​而不能在其他计算机上运行。

这是显示的错误: 无法将应用程序“ Finder”的“ Macintosh HD:用户:用户名:文档:”设置为<>“ Macintosh HD:用户:用户名:下载文件:新测试:门户资源”。 (〜10006)

tell application "Finder"
set folderToBeMoved to (container of (path to me) as text) & 
"portal_resources"
set destinationFolder to path to documents folder as text
set moveFolder to duplicate folder folderToBeMoved to destinationFolder     with replacing
end tell

预期的输出正在将文件复制到documents文件夹。但是,在某些Mac上进行测试时,脚本显示错误〜10006。它可以很好地在其他Mac上运行。

2 个答案:

答案 0 :(得分:0)

您要将文件夹复制到文字字符串(路径),这在运行较旧系统版本的计算机上可能会失败。

删除as text参数以获得alias指定符

set destinationFolder to path to documents folder

答案 1 :(得分:0)

尝试以下代码:

tell application "Finder"
    set folderToBeMoved to folder "portal_resources" of container of (path to me)
    set destinationFolder to path to documents folder
    set moveFolder to duplicate folderToBeMoved to destinationFolder with replacing
end tell

这里我更改了两个问题。首先,将事物转换为文本字符串并尝试修改字符串,但是Finder具有用于讨论文件对象的丰富语言。您应该将所有内容保留为对象形式。例如,这:

folder "portal_resources" of container of (path to me)

告诉发现者在该容器中找到该名称的文件夹,并返回一个可以直接使用的对象说明符。

第二,一旦有了该对象,就不能在其中添加“文件夹”说明符。你在哪里说:

duplicate folder folderToBeMoved

folderToBeMoved已经是一个对象说明符(形式为“文件夹[path]”的对象),因此您实际上是在 询问Finder以获取“文件夹文件夹[path]”,这会引发您所看到的错误。这就像对某人说“通过'通过盐'。”人们可能很聪明,可以弄清楚这一点。 Finder不是。