1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| -- bouge les fichiers des sous dossiers sur le dossier racine avec le nom sous-dossier.fichier
tell application "Finder"
-- Selection du dossier principal
set DossRacine to ((choose folder with prompt "Choisissez le dossier racine :" without invisibles) as alias) as string -- 2
-- Récupération des sous dossiers de ce dossier
set Mes_Dossiers to (every folder of folder DossRacine) as alias list
end tell
-- boucle sur chaque sous dossier (c'est le niveau 0 !)
repeat with Mon_Dossier in Mes_Dossiers
Nettoie_Dossier(Mon_Dossier, DossRacine)
end repeat
tell application "Finder" to delete every folder of folder DossRacine
-- fin du programme principal
-- Sous routine appelée par récursivité
-- Argument : le dossier à netttoyer et le dossier parent
on Nettoie_Dossier(Le_Dossier, Le_Dossier_Parent)
-- appel récursif de cette sous routine pour chacun des sous dossiers
tell application "Finder" to set Liste_Sous_Dossiers to (every folder of folder Le_Dossier) as alias list
repeat with Un_sous_Dossier in Liste_Sous_Dossiers
Nettoie_Dossier(Un_sous_Dossier, Le_Dossier)
end repeat
-- tous les sous dossiers ont été nettoyés : le dossier en cours contient des fichiers et des sous dossiers vides!
tell application "Finder"
set Nom_Dossier to name of Le_Dossier as string
-- boucle sur chaque fichier du dossier
set Mes_Fichiers to every file of the folder Le_Dossier
repeat with Mon_Fichier in Mes_Fichiers
-- change le nom du fichier en nom-dossier.nom-fichier
set the name of Mon_Fichier to Nom_Dossier & "." & name of Mon_Fichier
end repeat
-- mets tous les fichiers du dossier dans le dossier parent
move every file of entire contents of folder Le_Dossier to folder Le_Dossier_Parent
-- suppression de tous les sous dossiers du dossier en cours
delete every folder of folder Le_Dossier
end tell
end Nettoie_Dossier |
Partager