Utilisateur anonyme
-
28 mai 2008 à 18:41
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 2011
-
29 mai 2008 à 13:42
Bonjour,
Je désire faire un programme pour renommer de fichier, mais je ne sais pas comment "passer" d'un fichier à un autre non renommé,
J'ai fait un getfiles pour charger tous les fichiers, et je ne sais absolument pas comment "passer" de l'un a l'autre sans risquer de tomber dans une boucle où il renomme un fichier, puis un autre, puis le premier, puis le second, puis le premier...
Si quelqu'un pouvait m'expliquer comment sortir certains fichier du getfiles ou passer d'un fichier à un autre ou une solution alternative .
Voila le problème,
Merci d'avance pour toutes les réponses.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 28 mai 2008 à 18:57
Salut,
Moi pas comprendre..."passer" de l'un a l'autre sans risquer de tomber dans
une boucle où il renomme un fichier, puis un autre, puis le premier,
puis le second, puis le premier... ???
Voici un code qui renomme tous les fichier présent dans C:\ en ajoutant "nouveau" au début de leur nom (j'ai pas testé):
Dim files() As String = IO.Directory.GetFiles("C:")
For Each file As String In files
Dim dossier As String = IO.Path.GetDirectoryName(file)
Dim fichier As String = IO.Path.GetFileName(file)
Dim nouveauNom As String = IO.Path.Combine(dossier, "nouveau " & fichier)
IO.File.Move(file, nouveauNom)
Next
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 28 mai 2008 à 19:06
Salut,
Voici deux autres exemples de code possible :
Le premier exclus les sous-dossiers :
For Each files As String In My.Computer.FileSystem.GetFiles("C:\Temp", FileIO.SearchOption.SearchTopLevelOnly)
' FileIO.SearchOption.SearchTopLevelOnly cherche uniquement dans ce dossier en excluant les sous-dossiers
Dim Fi As New System.IO.FileInfo(files) ' Instanciation du fichier trouvé
My.Computer.FileSystem.RenameFile(files, "nouveau" + Fi.Name) ' Renomme le fichier
' files contient le chemin d'accès du fichier à renommer
' Fi.Name contient le nom du fichier (par exemple, C:\test.jpeg >>> Fi.Name retourne test.jpeg)
Next
Le deuxième inclus les sous-dossiers
For Each files As String In My.Computer.FileSystem.GetFiles("C:\Temp", FileIO.SearchOption.SearchAllSubDirectories)
' FileIO.SearchOption.SearchAllSubDirectories cherche dans ce dossier en incluant les sous-dossiers
Dim Fi As New System.IO.FileInfo(files) ' Instanciation du fichier trouvé
My.Computer.FileSystem.RenameFile(files, "nouveau" + Fi.Name) ' Renomme le fichier
' files contient le chemin d'accès du fichier à renommer
' Fi.Name contient le nom du fichier (par exemple, C:\test.jpeg >>> Fi.Name retourne test.jpeg)
Next
++
----------------------------------
Si la réponse vous convient : Réponse Acceptée
"passer" de l'un a l'autre sans
risquer de tomber dans une boucle où il renomme un fichier, puis un
autre, puis le premier, puis le second, puis le premier... ???
Pour info Kévin :
Je sais j'étais pas très clair sur ce point, mais je voyais pas trop comment le tourner autrement :
Je voulais pas qu'il renomme un fichier, puis qu'il le renomme encore, puis encore et ainsi de suite. C'est mieux dit ainsi ?
Vous n’avez pas trouvé la réponse que vous recherchez ?