1 votos

Applescript: ¿Cómo conseguir que los Eventos del Sistema incluyan las subcarpetas en los resultados?

Este es un script que selecciona un pdf al azar de una carpeta determinada y lo revela en el Finder. Pero sólo selecciona un pdf del nivel superior de la carpeta. ¿Cómo puedo hacer que mire también en las subcarpetas?

set j to "Macintosh HD:Users:me:Documents:pdfs"

tell application "System Events"
    set all_pdfs to path of every file in folder j whose visible = true and name extension is "pdf"
end tell

set random_pdf to some item of all_pdfs

# 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 random_pdf
end tell

nota: Estoy usando Eventos del Sistema porque es mucho más rápido que Finder.

0voto

user3439894 Puntos 5883

He aquí un método alternativo:

Ejemplo AppleScript código :

set pdfFilesList to paragraphs of (do shell script "find ~/Documents -type f -iname '*.pdf'")

set pdfFile to POSIX file (some item of pdfFilesList) as alias

tell application "Finder"
    activate
    reveal pdfFile
end tell

0voto

wch1zpink Puntos 11

Algo así puede funcionar para ti.

property mainFolder : "Macintosh HD:Users:me:Documents:pdfs"

set theFiles to paragraphs of (do shell script "find " & ¬
    quoted form of POSIX path of mainFolder & " -iname '*.pdf'")
set visiblePDFs to {}

tell application "System Events"
    repeat with thisFile in theFiles
        if visible of file thisFile then set end of visiblePDFs to contents of thisFile
    end repeat
end tell

tell application "Finder"
    reveal some item of visiblePDFs as POSIX file
end tell

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X