2012-06-29 86 views
12

我試圖用AppleScript在Finder中打開一個文件夾。以下是我的代碼。我想要在Finder中打開文件夾WorkSpace,但它會打開父文件夾/Volumes/MyMacDrive/Mani並突出顯示WorkSpace文件夾。我想要WorkSpace文件夾的內容,但是我得到的是其父文件夾的內容。我在這裏錯過什麼..?AppleScript:在Finder中打開文件夾

property the_path : "/Volumes/MyMacDrive/Mani/WorkSpace/" 
set the_folder to (POSIX file the_path) as alias 
tell application "Finder" 
    activate 
    if window 1 exists then 
     set target of window 1 to the_folder 
    else 
     reveal the_folder 
    end if 
end tell 
+2

使用'搜索window'如果其中一個窗口是打開的(信息窗口,首選項窗口,剪切窗口和視圖選項窗口),則代替「窗口」的窗口不會出現錯誤。 - >'如果Finder窗口1存在然後'。 reveal命令:將指定的對象帶入** view **,使用'open'命令,如** adayzdone **的答案。 – jackjr300

回答

18

據我搜索,似乎沒有辦法打開文件夾,而不是隻突出顯示AppleScript中的文件夾。所以我用過:

do shell script "open /Volumes/MyMacDrive/Mani/WorkSpace/" 

它對我很好,但請更新我,如果我錯了。

+0

Finder中的'do shell script'命令與'open'(not ** reveal **)命令沒有區別,它適用於所有人。 但是,也許這是規則的例外。 – jackjr300

+2

爲了完整起見,我想補充一點,如果你的路徑是一個參數,你可以使用'do shell script'打開「&quote&pathParameter&quote',它處理像路徑中的空格這樣的東西。 –

3

嘗試:

if front Finder window exists then 
    set target of front Finder window to the_folder 
else 
    open the_folder 
end if 

編輯納入jackjr300的修正。 Finder窗口是使用的正確類。

+0

雖然這是正確的,但我對它進行了編輯,因爲如果沒有'end if',它就無法正常工作,並且會出現'the_folder'未定義的錯誤。 –

11

它其實更簡單似乎比:

tell application "Finder" to open ("/Volumes/MyMacDrive/Mani/WorkSpace/" as POSIX file) 

或使用冒號給一個AppleScript路徑:

tell application "Finder" to open "MyMacDrive:Mani:WorkSpace" 

與你有一個開放的窗口

+1

這並沒有爲我工作 – Besi

+0

那麼,我已經使用第二個,它確實爲我工作(Mac OS X 10.10.3,AppleScript 2.4)。謝謝! – RoberRM

相關問題