2 votos

AppleScript: Ver una carpeta

Necesito una aplicación AppleScript en el escritorio para vigilar una carpeta, también en el escritorio, en busca de archivos que se hayan movido a ella.

Hasta ahora, sí:

global folderSpool
tell application "Finder" to set folderSpool to folder "Spool" of desktop

on adding folder items to folderSpool after receiving the_files
    repeat with each_file in the_files
        set theDialogText to "File is: " & (each_file) & "."
        display dialog theDialogText
    end repeat
end adding folder items to

Cuando exporto el script como aplicación, lo configuro como: "Permanecer abierta después del manejador de ejecución". Luego abro la aplicación y la mantengo en ejecución.

Sin embargo, cuando muevo archivos a la carpeta "Spool", no ocurre nada.

Probé el on idle pero seguía creando un diálogo tras otro, en lugar de hacerlo cuando se movían los archivos a la carpeta.

¿Alguna idea?

1 votos

¿Hay alguna razón por la que no pueda configurar una acción de carpeta en la carpeta de destino que desea vigilar?

0 votos

Al menos por dos razones: 1. No sé cómo; 2. si implica crear elementos adicionales y colocarlos en carpetas (que es lo que sospecho que ocurre), entonces no es práctico dado el uso que tenemos en mente.

1voto

El comando está utilizando, "sobre la adición de elemento de carpeta", es específico de la carpeta de acciones, por lo que no funciona en un no-carpeta de secuencia de comandos de acción. Estoy de acuerdo con los otros que de una carpeta de la acción es la mejor manera de manejarlo, pero si usted realmente desea hacerlo sin, usted puede crear una estancia abrir la aplicación que consulta el contenido de la carpeta y la compara con la última vez que se ejecutó, y muestra los diferentes archivos. Cambiar el runInterval de la propiedad para que se ejecute en su frecuencia preferido.

Nota: Por simplicidad, sólo me escribió, se compruebe que los archivos agregados a la carpeta de cola de impresión. Usted puede modificar para que se compruebe también para los archivos eliminados mediante la duplicación de la segunda sección en el código de abajo, y la función de bucle a través de spoolFiles y ver si están en currentFiles.

AppleScript Código, como abrir la aplicación, a continuación:

property spoolFiles : {}
property currentFiles : {}
property runInterval : 5 -- interval is in seconds
global folderSpool

on idle
    tell application "Finder"
        set folderSpool to folder "Spool" of desktop
        if (count of spoolFiles) is 0 then set spoolFiles to name of every file of folderSpool
        set currentFiles to name of every file of folderSpool
    end tell

    set changedFiles to {}--Reverse and repeat this section to check for missing files
    repeat with i from 1 to count of currentFiles
        if currentFiles's item i is not in spoolFiles then
            set changedFiles's end to currentFiles's item i
        end if
    end repeat

    repeat with each_file in changedFiles
        set theDialogText to "File is: " & (each_file) & "."
        display dialog theDialogText
    end repeat
    set spoolFiles to currentFiles --important to update the spoolFiles so only new files will get displayed going forward.
    return runInterval
end idle

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