使用AppleScript移动Preview文件时遇-1728错误求助
解决Preview图片移动的AppleScript错误1728
问题原因分析
- 路径格式不匹配:Preview返回的
thefile是HFS格式路径(冒号分隔),你用POSIX file转换它会导致Finder无法识别,触发错误1728。 - 目标路径处理错误:将HFS路径转成POSIX字符串后,Finder的
move命令无法直接识别该字符串,需要转为Finder可处理的对象(如文件夹引用)。 - 路径有效性验证:需确保目标文件夹
Favoriten的路径正确,且当前用户拥有该文件夹的读写权限。
修正后的代码
tell application "Preview" set theFile to path of front document -- 获取当前文档的HFS格式路径 end tell tell application "Finder" set targetFolder to folder "Users:XXX:XXX:XXX:Favoriten" -- 用HFS路径指定目标文件夹 move file theFile to targetFolder with replacing end tell
可选POSIX路径写法
如果你更习惯使用POSIX路径(斜杠分隔),可以用以下写法:
tell application "Preview" set theFile to POSIX path of front document -- 直接获取POSIX格式路径 end tell tell application "Finder" set targetFolder to POSIX file "/Users/XXX/XXX/XXX/Favoriten" as alias move POSIX file theFile to targetFolder with replacing end tell
关键注意点
- 替换代码中的
XXX为实际的用户名/文件夹名称,保证路径完全准确。 - 如果Preview打开的是未保存的图片(比如从剪贴板粘贴的临时图片),
path of front document会返回空值,建议增加判断逻辑避免报错:
tell application "Preview" if exists front document then if path of front document is not missing value then set theFile to path of front document else display alert "当前图片未保存,无法执行移动操作" return end if else display alert "Preview未打开任何文档" return end if end tell
内容的提问来源于stack exchange,提问作者csander
相关产品推荐
相关产品推荐

