2011-03-14 21 views
2

目前我使用這個AppleScript來獲取Finder的當前目錄:MacOSX:避免在通過AppleScript獲取Finder的當前目錄時掛起

tell application "Finder" 
    return POSIX path of ((folder of the front window) as text) 
end tell 

當你經常運行時,例如將它放入一個文件並運行while true; do sleep 1; osascript -ss myscript; done,你會看到每次,Finder掛起一點。

如何避免懸掛?有沒有其他方法來獲取這些信息?

回答

1

你不可能真的。 Applescript的速度並不爲人所知,而你本質上是要求Finder重新計算它可能無法追蹤的內容。

如果您要求Finder反覆查找此信息,那麼您可能需要重新考慮您的方法。例如,您不需要打開Finder窗口就可以對目標文件集執行操作。

+0

它需要重新計算什麼?我很確定它現在應該能夠在目錄中說得相當快。我也不想對目標文件集執行任何操作 - 我只是想知道前臺Finder窗口,它現在顯示的目錄。另外,我並不在乎這是否可以用AppleScript快速完成。我要求任何*方式。 – Albert 2011-03-14 13:34:33

+0

我說它*可能*必須每次計算,但我們永遠不會知道。最終,你仍然受到Applescript框架的阻礙。 Applescript不直接調用Finder;從您寫入應用程序的代碼開始,返回的代碼會非常迂迴,遠遠超過評論允許解釋的地方。 – 2011-03-14 14:13:15