我需要一些方法来确定特定文件是否存在。如果存在则执行一个脚本,如果没有,则执行另一个脚本。这是我在applescript中的逻辑:
If exists "File:Path:To:theFile"
tell application "Finder"
open "File:Path:To:the:script"
end tell
else
tell application "Finder"
open "File:Path:To:the:Anotherscript"
end tell
end if
唯一的问题是,有时当我使用上述逻辑时,脚本无法说找不到文件。我需要一个完整的证明,从来没有失败的方式来查看文件是否存在。我愿意使用终端或者AppleScript。我确定之前有人遇到过这个问题,但我已经在网上寻找答案,但却找不到答案。
答案 0 :(得分:7)
在你的原始代码中,你给exists函数一个字符串,而不是一个文件,即使它是文件的路径。你必须明确地给它一个文件,或者它就像你试图做的那样对待
exists "god"
或
exists "tooth fairy"
exists命令不会知道你在说什么。你可以用
return exists alias "the:path:to:a:file"
但是除非文件实际存在,否则别名不起作用,因此不存在的文件将产生错误。您当然可以捕获错误并对其执行某些操作,但只是将exists函数赋予文件对象更简单。文件对象属于Finder应用程序,因此:
return exists file "the:path:to:a:file" of application "Finder"
HTH
答案 1 :(得分:3)
我使用以下内容查看Finder中的项目是否存在:
on FinderItemExists(thePath)
try
set thePath to thePath as alias
on error
return false
end try
return true
end FinderItemExists
我认为您缺少的是将路径转换为别名。
答案 2 :(得分:0)
这听起来像try
...on error
block的好地方。我相信以下内容应该做你想要的:
tell application "Finder"
try
open "File:Path:To:the:script"
on error
open "File:Path:To:the:Anotherscript"
end try
end tell