Script pour trie photos (dans différents dossier selon date de création)

Lucaaas

Membre enregistré
27 Août 2023
4
0
33
Bonjour,

Ignare en apple script je souhaiterais développer un petit script me permettant d'importer des images et video d'un dossier (carte SD en l'occurence)
vers des sous dossier en prenant en compte que si il y a plus de 20min d'écart entre 2 fichiers il faut passer au sous dossier suivant
et au passage nommé les sous dossier selon la logique suivante

YY-DD-MM_1
YY-DD-MM_2
YY-DD-MM_...

pour être honnête j'ai essayer l'option de facilité en demandant a chat GPT mais le code ne copie pas les fichiers même s'il m'annonce un succès du run
le code en question.
je comprend la logique de code mais pas plus.

AppleScript:
-- Function to convert Unix timestamp to desired subfolder format
on timeToSubfolder(creationTime)
    set {year:y, month:m, day:d, hours:h, minutes:min} to creationTime
    return (text -2 thru -1 of (y mod 100)) & "-" & (text -2 thru -1 of ("0" & m)) & "-" & (text -2 thru -1 of ("0" & d)) & "_" & (text -2 thru -1 of ("0" & h))
end timeToSubfolder

-- Select source folder
set sourceFolder to choose folder with prompt "Select Source Folder"
set sourceLabel to "Source Folder: " & (sourceFolder as text)

-- Select destination folder
set destinationFolder to choose folder with prompt "Select Destination Folder"
set destinationLabel to "Destination Folder: " & (destinationFolder as text)

-- Copy files
try
    tell application "Finder"
        set previousCreationTime to current date
        set timeThreshold to 20 * minutes -- 20 minutes threshold
        
        repeat with aFile in entire contents of sourceFolder
            set creationTime to creation date of aFile
            if (creationTime - previousCreationTime) is greater than timeThreshold then
                set sourcePath to POSIX path of (aFile as text)
                
                -- Calculate the subfolder name
                set subfolderName to timeToSubfolder(creationTime)
                set destinationSubfolder to (destinationFolder & "/" & subfolderName)
                
                -- Create the destination subfolder if it doesn't exist
                if not (exists folder destinationSubfolder) then
                    make new folder at destinationFolder with properties {name:subfolderName}
                end if
                
                -- Copy the file to the destination subfolder
                set destinationPath to POSIX path of (destinationSubfolder as text)
                do shell script "cp -R " & quoted form of sourcePath & space & quoted form of destinationPath
                
                set previousCreationTime to creationTime
            end if
        end repeat
    end tell
    
    display dialog "Files copied successfully." buttons {"OK"} default button "OK"
on error errMsg
    display dialog "An error occurred: " & errMsg buttons {"OK"} default button "OK" with icon 2
end try
 
Hello
Je le fais en Automator si jamais. Ça te conviendrait ? Si oui je peux te montrer comment je fais. Et adapter à ton cas

Je me permets de répondre avec un contournement qui fonctionne. Je ne connais pas appleScript.

J’utilise le process pour mes photos, juste après un shooting.
 
Hello
Je le fais en Automator si jamais. Ça te conviendrait ? Si oui je peux te montrer comment je fais. Et adapter à ton cas

Je me permets de répondre avec un contournement qui fonctionne. Je ne connais pas appleScript.

J’utilise le process pour mes photos, juste après un shooting.
Salut,

Merci pour la réponse

Ça m’intéresse bien ! J’avais jeté un œil aussi à Automator mais je n’avais pas trouvé le moyen de sélectionner les éléments en prenant en compte les 20min

Je suis bien curieux de voir ce que tu utilises.
 
Bonjour,

Je te mets le script que chat GPT t'avait fait avec les corrections pour que cela fonctionne.

Mais j'ai du mal à comprendre ta demande.

- 20 minutes après la précédente ? (si tu prends une photo toutes le 15 minutes elles seront toutes dans le même dossier ? j'aurais compris un dossier toutes les 20 minutes et encore , je ne vois pas l'intérêt !) ... De plus les photos sont traités par le script dans l'ordre alphabétique du nom, pas par la date de création !)
J'aurais plutôt compris de renommer les photos avec la date de création, ce qui permettrai ensuite de faire ton tri !

- La date de création ! tel que le script est fait, il utilise la date de création du fichier, pas la date de prise de la photos, même si c'est souvent la même cela n'est pas toujours le cas!

- Le nommage des dossiers "YY-DD-MM" ne permet pas un tri par ordre chronologique j'ai modifié en "YYYY-MM-DD_HH_MM"

voila le script modifié: (sans le calcul des 20 minutes !) sera à revoir avec plus d'explication...

Bloc de code:
-- Function to convert Unix timestamp to desired subfolder format
on timeToSubfolder(creationTime)
    set {year:y, month:m, day:d, hours:h, minutes:min} to creationTime
    set m to text 4 thru 5 of (short date string of creationTime)
    set d to text -2 thru -1 of ("00" & d)
    set h to text -2 thru -1 of ("00" & h)
    set min to text -2 thru -1 of ("00" & min)
    return y & "-" & m & "-" & d & "_" & h & "_" & min
  
end timeToSubfolder

-- Select source folder
set sourceFolder to choose folder with prompt "Select Source Folder"
set sourceLabel to "Source Folder: " & (sourceFolder as text)

-- Select destination folder
set destinationFolder to choose folder with prompt "Select Destination Folder"
set destinationLabel to destinationFolder as text

-- Copy files
try
    tell application "Finder"
        set previousCreationTime to current date
        set timeThreshold to 20 * minutes -- 20 minutes threshold
      
        repeat with aFile in entire contents of sourceFolder
            set creationTime to creation date of aFile
          
            set sourcePath to POSIX path of (aFile as text)
          
            --Calculate the subfolder name
            set subfolderName to my timeToSubfolder(creationTime)
          
            set destinationSubfolder to (destinationLabel & subfolderName)
            set destinationFolder to destinationFolder as string
            set subfolderName to subfolderName as string
          
          
            -- Create the destination subfolder if it doesn't exist
            if not (exists folder destinationSubfolder) then
                make new folder at destinationFolder with properties {name:subfolderName}
            end if
          
            -- Copy the file to the destination subfolder
            set destinationPath to POSIX path of (destinationSubfolder as text)
            do shell script "cp -R " & quoted form of sourcePath & space & quoted form of destinationPath
            set previousCreationTime to creationTime
          
        end repeat
    end tell
  
    display dialog "Files copied successfully." buttons {"OK"} default button "OK"
on error errMsg
    display dialog "An error occurred: " & errMsg buttons {"OK"} default button "OK" with icon 2
end try
 
Dernière édition:
Bonjour,
J'ai regardé de plus prés, je peux te faire un applescript qui fait ce que tu veux en utilisant la date de prise de vue de la photo.

Pour cela il faut installer exiftool sur ta machine.

Pour installer exiftool que du télécharges là: http://owl.phy.queensu.ca/~phil/exiftool/
Tu as un fichier nommé : ExifTool-12.65.dmg , tu double-clic sur ce fichier , cela ouvre une image disque dans laquelle tu vois un fichier nommé : ExifTool-12.65.pkg
Sur ce fichier tu fais un clic droit et tu choisis ouvrir une petite fenêtre de message s'ouvre avec les 2 boutons : ouvrir et annuler tu clic sur ouvrir sur les fenêtres qui suivent clic sur continuer, renseigne ton mot de passe session et l'appli s'installe.
Cette appli n'est pas visible dans le dossier applications...
elle ajoute une commande dans le shell.

D'après ton profil tu es avec macOS ventura, perso je suis encore sous Mojave, et j'ai lu sur le net que l'appli exiftool ne s'installe pas au même endroit sur ces systèmes.

Pour écrire le script j'ai besoin de savoir ou il est installé chez toi, pour cela je te joint un petit applescript qui, lors de son lancement te demandera de choisir une image et en retour te donnera le chemin dont j'ai besoin. c'est soit: /usr/local/bin/exiftool soit: /opt/homebrew/bin/exiftool


Dès que j'ai cette info, je te fais le script.

Bloc de code:
set chemin to quoted form of POSIX path of (choose file with prompt "choisir un fichier image")
try
    do shell script "/usr/local/bin/exiftool " & chemin
    display dialog "/usr/local/bin/exiftool"
end try
try
    do shell script "/opt/homebrew/bin/exiftool " & chemin
    display dialog "/opt/homebrew/bin/exiftool"
end try
 
Bonjour,

Je te mets le script que chat GPT t'avait fait avec les corrections pour que cela fonctionne.

Mais j'ai du mal à comprendre ta demande.

- 20 minutes après la précédente ? (si tu prends une photo toutes le 15 minutes elles seront toutes dans le même dossier ? j'aurais compris un dossier toutes les 20 minutes et encore , je ne vois pas l'intérêt !) ... De plus les photos sont traités par le script dans l'ordre alphabétique du nom, pas par la date de création !)
J'aurais plutôt compris de renommer les photos avec la date de création, ce qui permettrai ensuite de faire ton tri !

- La date de création ! tel que le script est fait, il utilise la date de création du fichier, pas la date de prise de la photos, même si c'est souvent la même cela n'est pas toujours le cas!

- Le nommage des dossiers "YY-DD-MM" ne permet pas un tri par ordre chronologique j'ai modifié en "YYYY-MM-DD_HH_MM"

voila le script modifié: (sans le calcul des 20 minutes !) sera à revoir avec plus d'explication...

Bloc de code:
-- Function to convert Unix timestamp to desired subfolder format
on timeToSubfolder(creationTime)
    set {year:y, month:m, day:d, hours:h, minutes:min} to creationTime
    set m to text 4 thru 5 of (short date string of creationTime)
    set d to text -2 thru -1 of ("00" & d)
    set h to text -2 thru -1 of ("00" & h)
    set min to text -2 thru -1 of ("00" & min)
    return y & "-" & m & "-" & d & "_" & h & "_" & min
 
end timeToSubfolder

-- Select source folder
set sourceFolder to choose folder with prompt "Select Source Folder"
set sourceLabel to "Source Folder: " & (sourceFolder as text)

-- Select destination folder
set destinationFolder to choose folder with prompt "Select Destination Folder"
set destinationLabel to destinationFolder as text

-- Copy files
try
    tell application "Finder"
        set previousCreationTime to current date
        set timeThreshold to 20 * minutes -- 20 minutes threshold
     
        repeat with aFile in entire contents of sourceFolder
            set creationTime to creation date of aFile
         
            set sourcePath to POSIX path of (aFile as text)
         
            --Calculate the subfolder name
            set subfolderName to my timeToSubfolder(creationTime)
         
            set destinationSubfolder to (destinationLabel & subfolderName)
            set destinationFolder to destinationFolder as string
            set subfolderName to subfolderName as string
         
         
            -- Create the destination subfolder if it doesn't exist
            if not (exists folder destinationSubfolder) then
                make new folder at destinationFolder with properties {name:subfolderName}
            end if
         
            -- Copy the file to the destination subfolder
            set destinationPath to POSIX path of (destinationSubfolder as text)
            do shell script "cp -R " & quoted form of sourcePath & space & quoted form of destinationPath
            set previousCreationTime to creationTime
         
        end repeat
    end tell
 
    display dialog "Files copied successfully." buttons {"OK"} default button "OK"
on error errMsg
    display dialog "An error occurred: " & errMsg buttons {"OK"} default button "OK" with icon 2
end try
Salut,

merci pour les explications sur l'horodatage et la révision du code
Le timing de 20' c'est simplement que je suis moniteur de parapente et que j'ai 20 minute de montée entre 2 vols
Cela me permet de séparer les images de mes différents client a la fin de la journée
 
Bonsoir,
Voilà donc un nouveau code pour tester.

Donc, après avoir eu confirmation pour le chemin exiftool, je t’ai fait le script.

Le principe:
Après avoir installé EXIFTOOL comme dis dans le post #5

Ce que fait le script
  • sélectionner le dossier source
  • sélectionner le dossier destination
  • Créer un dossier temporaire sur le bureau,
  • Copier tous les fichiers dans ce dossier,
  • Renommer les fichiers en ajoutant la date de la prise de vue devant le nom au format “AAAA-MM-JJ HH.MM.SS_NomOriginal” (les séparateurs peuvent être adaptés si tu le veux) ceci permet d’avoir les fichiers dans l’ordre chronologique.
  • Remplacer la date de création du fichier par la date de la prise de vue dans les exifs
  • Si un fichier n’a pas de date, un fichier “les erreurs.txt” est créé sur le bureau avec le chemin du fichier concerné.
-Transférer les fichiers dans le dossier destination en créant un dossier avec le nom “AAAA-MM-JJ” le dossier reçoit les fichiers qui se suivent à moins de 20 minutes sinon un nouveau dossier est créer avec ajout, si nécessaire d’un numéro d’ordre.”AAAA-MM-JJ_numéro” (l’ordre année, mois, jour peur être changé si tu veux)
  • mettre dans la corbeille le dossier temporaire.
  • Met un message comme quoi il a terminé.

Fait des essais et dis-moi ce qu’il faudrait éventuellement changer
Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Selectionner le dossier Source"
    set dest to choose folder with prompt "Selectionner le dossier  Destination"
    
    make new folder at ((path to desktop folder) as string) with properties {name:"Transfert_tmp"}
    set dossiertmp to (path to desktop folder) & "Transfert_tmp" as string
    set les_fichiers to files of source
    repeat with chaque_fichier in les_fichiers
        duplicate chaque_fichier to dossiertmp
    end repeat
end tell

set mon_os to get system version of (system info)
if mon_os < "12" then -- si système inférieur à 12
    set exiftool_PATH to "/usr/local/bin/exiftool"
else
    set exiftool_PATH to "/opt/homebrew/bin/exiftool"
end if

tell application "Finder"
    set Chemin to (path to desktop folder) & "Transfert_tmp" as string
    set Chemin to Chemin as alias
end tell

tell application "Finder"
    
    set les_fichiers to files of Chemin
    repeat with chaque_fichier in les_fichiers
        
        set lefichier to chaque_fichier
        set AppleScript's text item delimiters to {""}
        set nom to name of chaque_fichier
        set chaque_fichier to chaque_fichier as string
        try
            set datephoto to do shell script exiftool_PATH & " -DateTimeOriginal " & quoted form of POSIX path of chaque_fichier
            if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreationDate " & quoted form of POSIX path of chaque_fichier
            if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreateDate " & quoted form of POSIX path of chaque_fichier
        on error
            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 & " " & lheure & "." & lesminutes & "." & lessecondes & "_" & 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
        
        set name of lefichier to newnom
    end repeat
    
end tell


tell application "Finder"
    set source to dossiertmp as alias
    set les_fichiers to files of source
end tell
set test1 to current date
set dernierdossier to ""

repeat with chaque_fichier in les_fichiers
    set lefichier to chaque_fichier as string
    set datephoto to do shell script exiftool_PATH & " -DateTimeOriginal " & quoted form of POSIX path of lefichier
    if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreationDate " & quoted form of POSIX path of lefichier
    if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreateDate " & quoted form of POSIX path of lefichier
    
    
    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 2 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 ladate to ladate as string
    end if
    
    set datetest to date (lejour & "/" & lemois & "/" & lannee & " " & lheure & ":" & lesminutes & ":" & lessecondes)
    set dif to datetest - test1
    
    tell application "Finder"
        if dif < 1200 then
            set lenom to lannee & "-" & lemois & "-" & lejour
            set dossierdest to ((dest as string) & lenom)
            if dernierdossier is not "" then
                set dossierdest to dernierdossier
            end if
            if not (exists folder dossierdest) then
                make new folder at dest with properties {name:lenom}
            end if
            move lefichier to dossierdest
            set dernierdossier to dossierdest
        else
            set lenom to lannee & "-" & lemois & "-" & lejour
            set dossierdest to ((dest as string) & lenom)
            set numero to 1
            set newnom to lenom
            repeat
                if exists dossierdest then
                    set newnom to lenom & "_" & numero
                    set dossierdest to ((dest as string) & newnom)
                    set numero to numero + 1
                else
                    set lenom to newnom
                    exit repeat
                end if
            end repeat
            make new folder at dest with properties {name:lenom}
            move lefichier to dossierdest
            set dernierdossier to dossierdest
        end if
        
    end tell
    set test1 to datetest
end repeat


tell application "Finder"
    delete dossiertmp
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Bonjour,

Après quelques essais chez des amis ayant des os récent, il semblerait que le chemin pour appeler EXIFTOOL ne dépende pas exclusivement de la version de l'OS mais plutôt de la manière dont le logiciel a été installé !(avec ou sans "homebrew").

Si tu as une erreur lors de l'exécution du script, fais moi signe je te dirais comment modifier le script .
 
Suite au problème du chemin de la commande "exiftool", j'ai inclus dans le script le recherche du bon chemin sur la machine.
le script devient:

Bloc de code:
tell application "Finder"
    set source to choose folder with prompt "Selectionner le dossier Source"
    set dest to choose folder with prompt "Selectionner le dossier  Destination"
    
    make new folder at ((path to desktop folder) as string) with properties {name:"Transfert_tmp"}
    set dossiertmp to (path to desktop folder) & "Transfert_tmp" as string
    set les_fichiers to files of source
    repeat with chaque_fichier in les_fichiers
        duplicate chaque_fichier to dossiertmp
    end repeat
end tell

try
    do shell script "/opt/homebrew/bin/exiftool"
    set exiftool_PATH to "/opt/homebrew/bin/exiftool"
on error
    set exiftool_PATH to "/usr/local/bin/exiftool"
end try

tell application "Finder"
    set Chemin to (path to desktop folder) & "Transfert_tmp" as string
    set Chemin to Chemin as alias
end tell

tell application "Finder"
    
    set les_fichiers to files of Chemin
    repeat with chaque_fichier in les_fichiers
        
        set lefichier to chaque_fichier
        set AppleScript's text item delimiters to {""}
        set nom to name of chaque_fichier
        set chaque_fichier to chaque_fichier as string
        try
            set datephoto to do shell script exiftool_PATH & " -DateTimeOriginal " & quoted form of POSIX path of chaque_fichier
            if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreationDate " & quoted form of POSIX path of chaque_fichier
            if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreateDate " & quoted form of POSIX path of chaque_fichier
        on error
            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 & " " & lheure & "." & lesminutes & "." & lessecondes & "_" & 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
        
        set name of lefichier to newnom
    end repeat
    
end tell


tell application "Finder"
    set source to dossiertmp as alias
    set les_fichiers to files of source
end tell
set test1 to current date
set dernierdossier to ""

repeat with chaque_fichier in les_fichiers
    set lefichier to chaque_fichier as string
    set datephoto to do shell script exiftool_PATH & " -DateTimeOriginal " & quoted form of POSIX path of lefichier
    if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreationDate " & quoted form of POSIX path of lefichier
    if datephoto is "" then set datephoto to do shell script exiftool_PATH & " -CreateDate " & quoted form of POSIX path of lefichier
    
    
    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 2 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 ladate to ladate as string
    end if
    
    set datetest to date (lejour & "/" & lemois & "/" & lannee & " " & lheure & ":" & lesminutes & ":" & lessecondes)
    set dif to datetest - test1
    
    tell application "Finder"
        if dif < 1200 then
            set lenom to lannee & "-" & lemois & "-" & lejour
            set dossierdest to ((dest as string) & lenom)
            if dernierdossier is not "" then
                set dossierdest to dernierdossier
            end if
            if not (exists folder dossierdest) then
                make new folder at dest with properties {name:lenom}
            end if
            move lefichier to dossierdest
            set dernierdossier to dossierdest
        else
            set lenom to lannee & "-" & lemois & "-" & lejour
            set dossierdest to ((dest as string) & lenom)
            set numero to 1
            set newnom to lenom
            repeat
                if exists dossierdest then
                    set newnom to lenom & "_" & numero
                    set dossierdest to ((dest as string) & newnom)
                    set numero to numero + 1
                else
                    set lenom to newnom
                    exit repeat
                end if
            end repeat
            make new folder at dest with properties {name:lenom}
            move lefichier to dossierdest
            set dernierdossier to dossierdest
        end if
        
    end tell
    set test1 to datetest
end repeat


tell application "Finder"
    delete dossiertmp
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
content pour toi !