AppleScript,检查当前用户主目录中是否存在文件夹

AppleScript, check if folder exist in current users home directory

我正在尝试创建一个脚本来检查当前用户桌面上是否存在文件夹,

tell application "Finder"

    set RAIDFolder to POSIX path of (path to desktop) & "RAID"
    if exists folder RAIDFolder then
        display notification "" with title "RAID" subtitle "FOUND IT " & RAIDFolder
    else
        display notification "" with title "RAID" subtitle "NOT FOUND " & RAIDFolder
    end if
end tell

但我无法让它工作,它总是去显示通知:

“未找到/Users/edit02/Desktop/RAID

它寻找的正确路径是什么。我对 applescripts 和一般的脚本编写相当陌生,所以对为什么我无法让它显示它检测到文件夹的任何帮助表示赞赏。

这是用于多个编辑站的脚本,它们都有不同的用户名,我希望它检查桌面上的文件夹,以及是否缺少本地 raid 中的同步文件夹。

此外,符号链接文件夹是否会显示为 if exist folder 命令的文件夹? 我都测试过。

谢谢 John I.

这是我编码的方式:

set RAIDFolder to POSIX path of (path to desktop) & "RAID"

tell application "System Events" to set theFolderExists to exists folder RAIDFolder

if theFolderExists then
    display notification "" with title "RAID" subtitle "FOUND IT " & RAIDFolder
else
    display notification "" with title "RAID" subtitle "NOT FOUND " & RAIDFolder
end if

问题是您没有像 AppleScript 那样思考 — 特别是,您没有像可编写脚本的 Finder 那样思考。它不考虑 posix 路径。如果你要转换到 posix 路径,你基本上已经走出了 Finder 的思想世界 - 然后你不能回到它并期望它理解 posix 路径.


如果您只是想知道桌面上是否有一个使用 Finder 和 AppleScript 的名为 "RAID" 的文件夹,只需说

tell application "Finder"
    exists folder "RAID" of desktop
end tell

如果有这样的文件夹,结果为 true,否则为 false


如果您坚持谈论 posix 路径,那么请不要与 Finder 交谈。只是说,完全在任何应用程序之外 tell 块:

set deskpath to get POSIX path of (get path to desktop)
set raidfile to POSIX file (deskpath & "RAID")

现在如果你想知道它是否作为一个文件夹存在,你可以问Finder。但是当你这样做的时候,如果不这样做,它就会抛出一个错误,所以你必须捕获那个错误:

tell application "Finder"
    try
        exists folder raidfile
    on error
        false
    end try
end tell