Les fichiers et dossiers sont renommés (de façon récursive) avec des noms sans accents ni apostrophes.
procédure que j'ai dû faire pour utiliser les fonctions packer/zip qui créént des fichiers compressés aux noms bizarres si des accents s'y trouvent.
Et je n'ai pas trouvé de fonction interne pour y remédier.
Cela reste assez rapide, mais si vous avez une meilleure solution, n'hésitez pas
-> Si pour tester vous ne voulez pas renommer vos fichiers, commentez la fonction RenameFile()
Code : Tout sélectionner
Procedure.s ChangeFileNameToZip(FileNameToZip$)
; àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ
ChangeFileName$ = ReplaceString(FileNameToZip$, "à", "a", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ç", "c", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "é", "e", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "è", "e", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ê", "e", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ë", "e", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "î", "i", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ï", "i", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ô", "o", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ö", "o", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ù", "u", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "ü", "u", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Â", "A", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ã", "A", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ç", "C", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "É", "E", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "È", "E", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ê", "E", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ë", "E", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Î", "I", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ï", "I", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ô", "O", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ö", "O", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ù", "U", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "Ü", "U", #PB_String_CaseSensitive, 1)
ChangeFileName$ = ReplaceString(ChangeFileName$, "'", " ", #PB_String_CaseSensitive, 1)
ProcedureReturn ChangeFileName$
EndProcedure
Procedure.s Directory_ChangeFileName(MyDir.s, IDdir.l=0)
If Right(MyDir, 1) <> "\"
MyDir + "\"
EndIf
If ExamineDirectory(IDdir, MyDir, "*.*")
While NextDirectoryEntry(IDdir)
If DirectoryEntryName(IDdir) <> "." And DirectoryEntryName(IDdir) <> ".."
MyFile.s = MyDir + DirectoryEntryName(IDdir)
Debug "Fichier initial : "+MyFile
MyNewFile.s = ChangeFileNameToZip(MyFile.s)
Debug "Nom Fichier modifié : "+MyNewFile
If RenameFile(MyFile.s, MyNewFile.s)<>0
Debug "Fichier renommé : "+MyNewFile
Debug "---"
EndIf
; rappel de la procédure à chaque dossier rencontré
If DirectoryEntryType(IDdir) = #PB_DirectoryEntry_Directory
Directory_ChangeFileName(MyDir + DirectoryEntryName(IDdir), IDdir + 1)
EndIf
EndIf
Wend
FinishDirectory(IDdir)
EndIf
EndProcedure
;-Test
Direct.s = PathRequester("Choisissez un répertoire", "")
If Direct
Directory_ChangeFileName(Direct)
EndIf