Cerca una cartella usando il applescript

0

Sto provando a creare una cartella per andare su un server, a cui le persone possono aggiungere foto e poi lo script le invia nella posizione corretta, tuttavia ho problemi con la parte di ricerca.

Come puoi vedere di seguito nel mio codice, la parte in cui trova dove inviare la cartella è commentata, perché non ho idea di cosa sia la sintassi.

Qualsiasi aiuto sarebbe molto apprezzato.

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

Inoltre, sono preoccupato che se questo script è sul server, guardando una cartella sul server, quindi non creerà un pop-up per chiunque aggiunga un file alla cartella sul server. Spero di sbagliarmi, ma se qualcuno potesse confermare questo in un modo o nell'altro, sarebbe fantastico. Grazie:)

    
posta man-qa 12.06.2014 - 12:33
fonte

1 risposta

1

Per file / cartelle locali

puoi utilizzare gli strumenti da riga di comando di Spotlight. Nel terminale

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

ti darà tutte le cartelle il cui nome inizia con xyz con la ricerca che inizia dalla tua cartella Inizio ~/ . Rimuovi * in xyz* sopra per trovare una corrispondenza esatta. Per maggiori informazioni su mdfind leggi la pagina man usando il comando man mdfind nell'app Terminal.

Puoi usarlo nel tuo script come questo ...

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)

Per file remoti

di cui il riflettore non sa nulla, puoi usare il buon vecchio comando UNIX find .

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

Puoi usarlo nel tuo script allo stesso modo di mdfind ma potrebbe essere un po 'più lento.

Spero di esserti stato utile.

    
risposta data 17.06.2014 - 17:26
fonte

Leggi altre domande sui tag