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
我正在尝试创建一个脚本来检查当前用户桌面上是否存在文件夹,
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