Buscar una carpeta usando applescript

0

Estoy tratando de hacer una carpeta para ir a un servidor, a la que las personas pueden agregar fotos y luego el script las envía al lugar correcto, sin embargo, tengo problemas con la parte de búsqueda.

Como se puede ver a continuación en mi código, la parte en la que encuentra dónde enviar la carpeta está comentada, porque no tengo idea de cuál es la sintaxis correspondiente.

Cualquier ayuda sería muy apreciada.

global theWatchedFolder
set theWatchedFolder to choose folder
on idle
tell application "Finder"
set theDetectedItems to every item of theWatchedFolder
repeat with aDetectedItem in theDetectedItems
    set jobNumber to display dialog "Please enter the job number for this photo." buttons {"Submit", "Cancel"}
    display dialog "File detected: " & jobNumber
    --tell finder
    -- search for jobNumber in (path to desktop)
    --set jobFolder to top search result
    --end tell
    --set colourFolder to jobfolder & /colour
    move aDetectedItem to the desktop --move to colourFolder
end repeat
end tell
if theDetectedItems is not {} then
activate
display dialog "test move complete"
end if
return 1
end idle

También me preocupa que si esta secuencia de comandos se encuentra en el servidor, al ver una carpeta en el servidor, no se cree una ventana emergente para nadie que agregue un archivo a la carpeta en el servidor. Ojalá me equivoque, pero si alguien pudiera confirmar esto de una manera u otra, sería genial. Gracias :)

    
pregunta man-qa 12.06.2014 - 12:33

1 respuesta

1

Para archivos / carpetas locales

puede utilizar las herramientas de línea de comando de spotlight. En la Terminal

$ mdfind -onlyin ~/ "kMDItemDisplayName == 'xyz*' && kMDItemKind == 'Folder'"

le dará todas las carpetas cuyo nombre comienza con xyz con la búsqueda que comienza en su carpeta de inicio ~/ . Elimine * en xyz* arriba para encontrar una coincidencia exacta. Para obtener más información sobre mdfind , lea la página del manual usando el comando man mdfind en la aplicación de Terminal.

Puedes usarlo en tu script de esta manera ...

set res to (do shell script "mdfind -onlyin ~/ \"kMDItemDisplayName == 'xyz' && kMDItemKind == 'Folder'\"")    
set fList to (every paragraph of res) as list    
log "Count:" & (get count of fList)

Para archivos remotos

que Spotlight no conoce, puede utilizar el antiguo y antiguo comando UNIX find .

$ find ~/ -iname "xyz" -type d

Puedes usarlo en tu script de la misma manera que mdfind pero puede ser un poco más lento.

Espero que haya ayudado.

    
respondido por el Vic 17.06.2014 - 17:26

Lea otras preguntas en las etiquetas