¿Cómo uso AppleScript para revelar un archivo en Finder desde su ruta POSIX?

6

Estoy tratando de crear un fragmento de AppleScript que localice el fondo de pantalla aleatorio actual y lo revele en Finder. Tengo el siguiente fragmento que encuentra la ruta POSIX del fondo de pantalla actual como una cadena:

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 ahora es una cadena en la forma:

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

(Nota espacios)

Intento revelar esta ruta en FInder, pero todo lo que he probado produce un error:

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

¿Cómo revelo un nombre de ruta en Finder en AppleScript cuando todo lo que tengo es su ruta POSIX?

Brant Bobby
fuente

Respuestas:

9

Creo que tu problema es eso quoted form. Intenta algo como esto:

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

Por lo que sólo reveal thePath

Nathan Greenstein
fuente
Esto funciona si pego una ruta directamente en el script como lo hizo, pero si la uso reveal POSIX file thePathdevuelve el error "No se puede obtener el archivo POSIX <path>".
Brant Bobby
1
@BrantBobby Eso significa que hay algún problema con el camino mientras lo recibe. Intenta lanzarlo como una cadena ( set thePath to ... as string). Si eso no funciona, tendré que ver exactamente cuál es el resultado para ayudar (no puedo probar; su script no funciona OMM)
Nathan Greenstein
Ah, agregar as stringhizo el truco! Supongo que mi suposición de que thePathya era una cadena era incorrecta.
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
Lri
fuente