Bonjour,
Il te faut d'abord télécharger EXITOOL là
ExifTool-12.35.dmg
Tu ouvres l'image disque (double clic) puis dans la fenêtre qui s'ouvre tu exécutes le " ExifTool-12.35.pkg " cela installe la commande exiftool dans le mac.
ensuite tu ouvres "Editeur de script" qui est dans applications-->Utilitaires, Tu choisis -->nouveau document en bas à gauche.
Dans la fenêtre qui s'ouvre tu fais un copié, collé du script ci-dessous.
Pour exécuter ce script tu cliques sur le bouton Exécuter en haut à gauche.
Le script te demande de choisir le dossier à traiter, puis il change la date du fichier par la date de la prise de vue et il renomme tous les fichiers en ajoutant devant le nom la date de prise de vue au format AAAAMMJJ.
Attention il traite tous les fichiers du dossier et de ses sous dossier.
A la fin il te met un message comme quoi il a terminé.
Si lors du traitement il rencontre des erreurs il crée un fichier Erreur.txt sur le bureau avec le chemin des fichiers posant problème (1 par ligne).
Dis moi si tout fonctionne pour toi.
Un conseil fait un premier test avec une copie de quelques photos dans un dossier...
Bloc de code:
-- remplace date du fichier par la date exif creation et renomme les fichiers avec la date de création
tell application "Finder"
set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à redater"
my inspecter(Chemin)
end tell
on inspecter(un_dossier)
tell application "Finder"
-- traitement des fichiers :
set les_fichiers to files of un_dossier
repeat with chaque_fichier in les_fichiers
-- traitement d'un fichier
set lefichier to chaque_fichier
set AppleScript's text item delimiters to {""}
set nom to name of chaque_fichier --récupère le nom du fichier
set extens to document file nom in un_dossier --recupere l extension du fichier
set lextension to name extension of extens
set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
set elements to text items of nom
set nomcourt to (items 1 thru -2 of elements) as string
set ancien_nom to nomcourt
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
set chaque_fichier to chaque_fichier as string
try
set datephoto to do shell script "/usr/local/bin/exiftool -DateTimeOriginal " & quoted form of POSIX path of chaque_fichier
if datephoto is "" then set datephoto to do shell script "/usr/local/bin/exiftool -CreationDate " & quoted form of POSIX path of chaque_fichier
if datephoto is "" then set datephoto to do shell script "/usr/local/bin/exiftool -CreateDate " & quoted form of POSIX path of chaque_fichier
on error
-- Ecrit un fichier erreur sur le bureau si erreur chargement date
set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
write "Le fichier ne contient pas de date : " & chaque_fichier & return to lelog starting at eof
close access lelog
set datephoto to ""
end try
if length of datephoto > 20 then
set x to (length of datephoto) - 33
set DateOriginale to text -x thru -1 of datephoto
set ladate to text 1 thru 5 of DateOriginale
set lannee to ladate
set ladate to ladate & text 7 thru 8 of DateOriginale
set lemois to text 7 thru 8 of DateOriginale
set ladate to ladate & text 10 thru 11 of DateOriginale
set lejour to text 10 thru 11 of DateOriginale
set ladate to ladate & text 13 thru 14 of DateOriginale
set lheure to text 13 thru 14 of DateOriginale
set ladate to ladate & text 16 thru 17 of DateOriginale
set lesminutes to text 16 thru 17 of DateOriginale
set ladate to ladate & "." & text 19 thru 20 of DateOriginale
set lessecondes to text 19 thru 20 of DateOriginale
set newnom to lannee & lemois & lejour & " " & ancien_nom
set xxx to ladate as string
if xxx is " 000000000000.00" then
-- Ecrit un fichier erreur sur le bureau si erreur chargement date(=0000...)
set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
write "Le fichier ne contient pas de date : " & chaque_fichier & return to lelog starting at eof
close access lelog
else
do shell script "touch -t " & ladate & " " & quoted form of POSIX path of chaque_fichier
end if
end if
if datephoto is not "" then
set aa to container of lefichier as string
set numero to 1
set lenewnom to newnom
repeat
if exists aa & lenewnom & "." & lextension then
set lenewnom to newnom & "(" & numero & ")"
set numero to numero + 1
else
set newnom to lenewnom
exit repeat
end if
end repeat
set name of lefichier to newnom & "." & lextension
else
set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
write "Le fichier ne contient pas de date : " & chaque_fichier & return to lelog starting at eof
close access lelog
end if
end repeat
-- traitement des dossiers :
set les_dossiers to folders of un_dossier
repeat with chaque_dossier in les_dossiers
-- traitement d'un dossier
my inspecter(chaque_dossier)
end repeat
end tell
end inspecter
tell application "Finder"
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell