Utilisateur anonyme
-
22 févr. 2013 à 11:53
Utilisateur anonyme -
22 févr. 2013 à 13:20
Salut les amis !
Je voudrais déplacer plusieurs types de fichiers présents dans le répertoire de mon programme vers un répertoire donné. J'utilise donc la méthode File.Move qui me semble la plus adaptée à mon problème.
Seulement j'ai un problème, j'obtiens l’exception suivante : "Le format du chemin d'accès donné n'est pas pris en charge."
Voici le code :
For Each Fichier As String In My.Computer.FileSystem.GetFiles(My.Application.Info.DirectoryPath, FileIO.SearchOption.SearchTopLevelOnly)
If Path.GetFileName(Fichier).ToLower.Contains(".dll") Then
My.Computer.FileSystem.MoveFile(Fichier, "C:\Users\Clément\Desktop" + Fichier.ToString)
End If
Next
C'est peut être la méthode qui n'est pas adaptée ou mal utilisée, si vous pouviez me dire quelle méthode utiliser ou quelle syntaxe est la bonne...
Merci
Sur ta ligne MoveFile, ta variable 'Fichier' contient un chemin complet que tu tentes d'ajouter à un autre. Tu dois faire comme pour ta ligne du dessus en utilisant : ...Desktop" + Path.GetFileName(Fichier).
Remarque 1 : ToString ne sert à rien puisque 'Fichier' est déjà de type string.
Remarque 2 : Si tu distribues ton appli, évite les chemins en dur. Le desktop est accessible par My.Computer.Filesystem.SpecialsDirectory.Desktop
Génial ça marche ! Merci encore banana32
Pour ceux qui chercheraient : Voici le code complet et expliqué :
For Each Fichier As String In My.Computer.FileSystem.GetFiles(My.Application.Info.DirectoryPath, FileIO.SearchOption.SearchTopLevelOnly) ' Pour chaque fichier dans le répertoire du programme ( sous répertoires exclus )
If Path.GetFileName(Fichier).ToLower.Contains(".dll") Then ' Si le nom des fichiers trouvés contient .dll c'est à dire si c'est un fichier .dll alors
My.Computer.FileSystem.MoveFile(Fichier, "C:\Users\Clément\Desktop" + Path.GetFileName(Fichier), True) 'Déplacer le fichier trouvé et qui contient .dll vers C:\Users\Clément\Desktop\ + NomduFichier le True sert à écraser un fichier si il existe déjà, si vous ne voulez pas, mettre False.
End If
Next