Statements
La programmation AppleScript en exemples.

Dossier scripté à l'ajout.
Imaginons qu'on ait pour habitude d'échanger de gros fichiers avec des amis en utilsant le partage de fichier. Le ou les fichiers seront copiés dans la boîte de dépôt (Drop Box en anglais) qui se trouve dans le dossier "Public".

Toutefois, il y a un problème : est-ce que l'autre fini de copier le fichier ? On va apporter une solution concrête à cette question grâce au script de dossier : chaque fois qu'un ou plusieurs fichiers viennent d'être finis de copier, une fenêtre va s'ouvrir et nous donner le nom du fichier.

Après avoir récupéré le script, il faudra l'attacher à la boîte de dépôt pour qu'il fonctionne. Pour faire cela, il faut faire controle-click sur l'icône de la boîte de dépôt.

Statement 1 : récupérez l'AppleScript ici.

Le Script :

on adding folder items to le_dossier after receiving l_ensemble_nouveau_contenu
tell application "Finder"
activate
set le_nom to ""
if (length
of l_ensemble_nouveau_contenu) > 1 then
repeat with i in l_ensemble_nouveau_contenu
set le_nom to le_nom & name of i & return
end repeat
display dialog
"Les fichiers suivant ont été ajoutés:" & return & le_nom
else
set le_nom to name of first item of l_ensemble_nouveau_contenu
display dialog
"Le fichier suivant a été ajouté:" & return & le_nom
end if
end tell
end
adding folder items to


Explications :
Lorsque le script est attaché à un dossier, le Statement "adding folder items" est activé lors de l'ajout d'un item (dossier ou fichier) dans le dossier. On constate que la variable "le_dossier" n'est pas utilisée par le script; elle ne sert que de référence au script puisque le même script peut être attaché à plusieurs dossiers, il faudra donc qu'il puisse savoir quel dossier lui demande de s'exécuter.

Le contenu ajouté se trouve dans la variable "
l_ensemble_nouveau_contenu", ce sera donc soit un item soit une liste d'items.


Astuce :
Ce script fonctionne quel que soit la méthode utilisée pour copier le document dans le dossier : FTP, AFP et même via le terminal en remote login.