Come uso AppleScript per rivelare un file nel Finder dal suo percorso POSIX?


6

Sto cercando di creare uno snippet di AppleScript che individua lo sfondo casuale corrente e lo rivela in Finder. Ho il seguente frammento che trova il percorso POSIX dello sfondo corrente come una stringa:

set plistFolderPath to path to preferences folder from user domain as string
set plistPath to plistFolderPath & "com.apple.desktop.plist"
tell application "System Events"
    tell property list file plistPath
        tell contents
            set thePath to value of property list item "NewChangePath" of property list item "default" of property list item "Background" & "/" & value of property list item "LastName" of property list item "default" of property list item "Background"
        end tell
    end tell
end tell

thePath è ora una stringa nella forma:

/ Volumes / Archive / Widescreen wallpaper / 12345_Name_2560x1440.jpg

(Spazi nota)

Cerco di rivelare questo percorso in FInder, ma tutto ciò che ho provato produce un errore:

tell application "Finder"
    reveal POSIX file of quoted form of thePath (* Error: "Can't get POSIX file of (blah)" *)
end tell

Come posso rivelare un percorso nel Finder in AppleScript quando tutto ciò che ho è il suo percorso POSIX?

Risposte:


9

Penso che il tuo problema sia quello quoted form. Prova qualcosa del genere:

set thePath to POSIX file "/Volumes/Lion HD/Users/ngreenst/Desktop/image.jpg"
tell application "Finder" to reveal thePath

Quindi reveal thePath


Funziona se incollo un percorso direttamente nello script come hai fatto tu, ma se lo uso reveal POSIX file thePathrestituisce un errore "Impossibile ottenere il file POSIX <percorso>".
Brant Bobby,

1
@BrantBobby Ciò significa che c'è qualche problema con il percorso mentre lo ricevi. Prova a lanciarlo come stringa ( set thePath to ... as string). Se il problema persiste, dovrò vedere esattamente cosa può aiutare l'output (non riesco a testare; il tuo script non funziona OMM)
Nathan Greenstein,

Ah, l'aggiunta ha as stringfatto il trucco! Immagino che il mio presupposto che thePathfosse già una stringa fosse sbagliato.
Brant Bobby,

4
set p to "/Applications/Utilities/AppleScript Editor.app"

# uses an existing window or makes a new window with your default settings
tell application "Finder"
    reopen # makes a new window if there are no open windows
    activate
    set target of window 1 to (POSIX file p as text)
end tell

# makes a new window that doesn't use your default bounds or view settings
tell application "Finder"
    reveal POSIX file p as text
    activate # focuses the window
end tell
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.