如何使用AppleScript在Finder中引用文件

如何使用AppleScript在Finder中引用文件,applescript,finder,Applescript,Finder,我有一个非常简单的问题,我在谷歌上搜索了很长时间,但无法解决: tell application "Finder" set videoFile to "Users:username:Desktop:No Backup:Music:video.mp4" delete file videoFile end tell 这将导致以下错误: Finder

我有一个非常简单的问题,我在谷歌上搜索了很长时间,但无法解决:

            tell application "Finder"
                set videoFile to "Users:username:Desktop:No Backup:Music:video.mp4"
                delete file videoFile
            end tell
这将导致以下错误:

Finder出现错误:无法获取文件“用户:用户名:桌面:否 备份:音乐:视频.mp4”

如果我尝试“打开文件”或其他命令而不是“删除”,也会发生同样的情况

但是,以下操作无法正确打开文件:

            tell application "QuickTime Player"
                set videoFile to "Users:username:Desktop:No Backup:Music:video.mp4"
                open videoFile
            end tell
这将打开视频,因此文件路径必须正确

我还搜索了所有Applescript Finder命令的列表,但找不到任何合适的文档

编辑:我也试过了
我尝试了
删除(文件夹folderPath中名为“video.mp4”的每一项)
,但这导致
查找程序出错:无法获取文件夹“Users:username:Desktop:No Backup:Music”。
HFS路径必须以磁盘名开始始终(用真实名称替换
Macintosh HD

但是,有一种方便的方法可以使用相对路径,而不考虑启动磁盘的名称和用户名

set desktopFolder to path to desktop as text -- returns "Macintosh HD:Users:username:Desktop:"
tell application "Finder"
    set videoFile to desktopFolder & "No Backup:Music:video.mp4"
    delete file videoFile
end tell
对于当前用户的桌面文件夹,还有一个更短的方法,因为桌面文件夹是查找器的根文件夹

tell application "Finder"
    delete file "video.mp4" of folder "No Backup:Music:"
end tell

解决方案是在文件路径的开头添加“Macintosh HD:”——这让我很困惑,不同应用之间的行为不一致

如果遵循规则,就不会有不一致。POSIX路径以斜杠(表示启动磁盘)开头,HFS路径以磁盘名开头。旧式Mac OS路径(由于历史原因,AppleScript使用的类型)以卷名开头(请参阅)。我不知道为什么在没有QuickTime Player的情况下它可以工作,不过请注意,您并没有将它作为一个
文件
,而只是作为一个字符串进行传递。最好使用系统事件而不是查找器来处理文件系统操作。在其他原因中,您可以使用更熟悉的posix路径格式,即
告诉应用程序“系统事件”删除文件“~/Desktop/No Backup/Music/video.mp4”
(但是,请注意,系统事件的
delete
会立即将文件从系统中删除,而不是将其移到垃圾箱中)。
tell application "Finder"
    delete file "video.mp4" of folder "No Backup:Music:"
end tell