Déplacer certains types de fichiers vers un répertoire [Résolu]

Signaler
-
 Utilisateur anonyme -
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

2 réponses


Bonjour,

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