Bonjour,
Cela fait plus de nombreux jours que je cherche comment réussir à renommer des fichiers dans mon application.
Je dispose du nom du dossier (sélectionné avec un FolderBrowserDialog) dans la variable mstrWorkingPath (String)
Je renseigne une listbox avec GetFiles comme ceci:
Pour chaque fichier dans la listbox (nommé strFicNameSource), je construit un nouveau nom de fichier (strFicNameTarget), puis j'effectue le renommage comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 For Each foundFile As String In My.Computer.FileSystem.GetFiles(mstrWorkingPath) Me.LstFileList.Items.Add(FicExtract(foundFile)) '(Remarque = FicExtract extrait juste le nom de fichier de la chaine de caractère contenant dossier + nom de fichier) Next
J'obtiens l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 My.Computer.FileSystem.RenameFile(PathFileBuild(mstrWorkingPath, strFicNameSource), strFicNameTarget) '(Remarque = PathFileBuild construit juste le chemin complet dossier + nom de fichier)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll Additional information: Le processus ne peut pas accéder au fichier, car il est utilisé par un autre processus.
J'ai la très nette impression que le simple fait de renseigner la listbox avec GetFiles bloque l'accès en écriture aux fichiers qui sont considérés comme "verrouillés par un autre processus".
Comment puis-je renseigner ma listbox autrement, ou bien comment "libérer" les fichiers avant de les renommer.
J'ai essayé de vider (méthode Clear) la listbox avant le renommage, mais ça ne change rien !
Merci d'avance pour votre aide
Partager