Bonjour,
je t'ai fait un petit applescript qui à son lancement te demande de sélectionner le dossier à traiter.
Il traite tous le fichiers du dossier et de ses sous-dossiers. Quand il a terminé il te met un message.
Il traite le fichiers dont l'extension est : "jpg", "jpeg", "png", "tiff", "gif", "bmp", "psd" et les PDF.
Il crée sur le bureau un fichier texte "laliste.txt" qui contient un fichier par ligne le séparateur est la tabulation.
Il y a : le chemin complet du fichier, le nom du fichier, la taille, la hauteur en pixels et la largeur en pixels.
Ce fichier peut s'ouvrir avec "numbers" ce qui te donne une ligne par fichier et un élément par colonne dans l'ordre cité ci-dessus.
Si une valeur (hauteur ou largeur n'existe pas elle est renseignée "(null)".
Si il y a une erreur sur le traitement d'un fichier il met un message d'erreur (a valider) !
Dis moi si cela te va, et s'il faut faire des modifications.
Bloc de code:
property lataille : "" --déclaration de variables globales
property lalargeur : ""
property lahauteur : ""
property lefichier : ""
property nom : ""
tell application "Finder"
set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à lister"
my inspecter(chemin) -- appel routine inspecter
end tell
on inspecter(un_dossier)
tell application "Finder"
set nomdos to name of un_dossier -- recupere le nom du dossier
set Fimage to {"jpg", "jpeg", "png", "tiff", "gif", "bmp", "psd"} -- liste des extensions a traiter dans Fimage avec fonction mdls
-- traitement des fichiers :
set les_fichiers to files of un_dossier --récupère tous les fichiers du dossier
repeat with chaque_fichier in les_fichiers -- répète avec chaque fichier du dossier en cour
-- traitement d'un fichier
tell application "Finder"
set nom to name of chaque_fichier --récupère le nom du fichier
set AppleScript's text item delimiters to {"."} -- defini le separateur
set lextension to get last text item of nom -- recupère l'extension
set lefichier to chaque_fichier as string --récupère le chemin du fichier au format chaine de caractères
try --bloc si erreur
if lextension is in Fimage then -- si fichier video de la liste Fimage
set lataille to do shell script "mdls -name kMDItemFSSize " & quoted form of POSIX path of lefichier --récupère la taille au fromat mdls
set lahauteur to do shell script "mdls -name kMDItemPixelHeight " & quoted form of POSIX path of lefichier --récupère la hauteur pixel format mdls
set lalargeur to do shell script "mdls -name kMDItemPixelWidth " & quoted form of POSIX path of lefichier --récupère la largeur pixel format mdls
set AppleScript's text item delimiters to {" "} -- defini le separateur
set lataille to last text item of lataille
set lahauteur to last text item of lahauteur
set lalargeur to last text item of lalargeur
my ecriture() --appel pour ecriture dans fichier texte du fichier
end if
if lextension is "pdf" then -- si fichier video de la liste FVideo_dv_avi
set lataille to do shell script "mdls -name kMDItemFSSize " & quoted form of POSIX path of lefichier
set lahauteur to do shell script "mdls -name kMDItemPageHeight " & quoted form of POSIX path of lefichier
set lalargeur to do shell script "mdls -name kMDItemPageWidth " & quoted form of POSIX path of lefichier
set AppleScript's text item delimiters to {" "} -- defini le separateur
set lataille to last text item of lataille
set lahauteur to last text item of lahauteur
set lalargeur to last text item of lalargeur
my ecriture() --appel pour ecriture dans fichier texte du fichier
end if
on error the errorMessage number the errorNumber --recup message si erreur
display dialog "erreur: " & errorMessage & " sur le fichier " & lefichier --affiche message si erreur
end try
end tell
end repeat -- fichier suivant
-- traitement des dossiers :
set les_dossiers to folders of un_dossier
repeat with chaque_dossier in les_dossiers -- dossier suivant
my inspecter(chaque_dossier) -- appel pour dossier suivant
end repeat
end tell
end inspecter -- fin routine inspecter
on ecriture()
set lelog to open for access ((path to desktop folder as text) & "laliste.txt") as text with write permission -- ouvre le fichier log et ecritles valeur séparé par une tabulation
write lefichier & (ASCII character 9) & nom & (ASCII character 9) & lataille & (ASCII character 9) & lahauteur & (ASCII character 9) & lalargeur & return to lelog starting at eof
close access lelog -- ferme le fichier log
end ecriture
tell application "Finder"
activate
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell