查找文件在取景器的问题中选择(Finding a file selecting it in find

2019-10-16 22:10发布

我有这个脚本来查找文件,并选择它

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(雪豹)这个脚本是选择文件,但花费过多时间。 任何建议我怎么能在Mac的两个版本的代码做工精细。 提前致谢 :)

编辑:

我从网络驱动器中选择文件及旅馆系统是有一个Windows操作系统。 所有系统都位于同一网络。

Answer 1:

reveal命令可以给你帮助。 它只是在位于取景器的文件时,如有必要,将打开一个新的窗口,然后选择文件的所有只用一个代码行:

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

这是更有效或更耗时比你写的是什么? 我不是特别肯定,是诚实的。 不过,我写了已经包含了许多脚本reveal在Mac OS X 10.5.8(Leopard)的,的Mac OS X 10.6.8(雪豹),和Mac OS X 10.7.3(狮子)命令,并将结果已经满足。



Answer 2:

你在你的代码有错误。

  1. 你忘了在显示警戒线后“存在”的一段。
  2. 你不能显示POSIX文件。 它必须被转换成字符串。 苹果没有这个优化。
  3. 该命令存在将始终返回false你使用它,因为你没有提供一个完整的文件路径的方式。 虽然Java和C ++允许缩写文件路径,苹果并没有。

我不能评论,所以我不得不把这个作为一个答案,而不是。



文章来源: Finding a file selecting it in finder issue