我有这个脚本来查找文件并选择它
set filePath to ("filePath.ext" as POSIX file)
tell application "Finder"
if (exists filePath) then
select filePath
activate
else
display alert "File " & filePath & " does not exist"
end if
end tell
它在Mac OS x 10.6.x(LION)上工作得很好但是当我尝试在Mac OS x 10.5.x(雪豹)上运行此脚本时,它正在选择文件但是花费了太多时间。任何建议如何使这个代码在两个版本的Mac上都能正常工作。 在此先感谢:)
修改
我从网络驱动器中选择文件,宿舍系统正在使用Windows Os。所有系统都位于同一网络中。
答案 0 :(得分:2)
reveal
命令可能对您有所帮助。它只是在finder中找到一个文件,必要时打开一个新窗口,然后选择只使用一行代码的文件:
tell application "Finder" to reveal path:to:some:file
当然,文件必须存在才能使其正常工作。当您以别名形式(即Macintosh HD:Users:billybob:Desktop:howToHack.pdf
)显示特定文件/目录时,您就知道它存在。尝试将不存在的文件强制转换为别名将导致错误。如果您100%确定该文件存在并确切知道它在哪里,恭喜!你可以少担心一件事。如果您的确定性级别低于100%,请使用try-catch
块。他们多次挽救了我的生命。这样,如果您像我一样通过互联网分发您的应用程序,则不会向您的客户提供难以理解的错误消息。
以下是一个例子:
set theFile to "/Users/billybob/Desktop/folder/subfolder/subfolder2/subfolder3/fineByMe.mp3"
try
set theFile to (theFile) as alias
tell application "Finder" to reveal theFile
on error
display alert "The file " & quoted form of theFile & "does not exist."
-- The variable 'theFile' couldn't be coerced into an alias.
-- Therefore, 'theFile' still has a string value and it can be used in dialogs/alerts among other things.
end try
这比你写的更有效率或更省时吗?说实话,我不是特别确定。但是,我已经编写了许多脚本,其中包括Mac OS X 10.5.8(Leopard),Mac OS X 10.6.8(Snow-Leopard)和Mac OS X 10.7.3(Lion)上的reveal
命令,结果令人满意。
答案 1 :(得分:0)
您的代码中存在错误。
我无法评论,所以我不得不把它作为答案。