Copier le contenu d'un répertoire racine [Résolu]

Karin.code 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention - 27 oct. 2016 à 14:49 - Dernière réponse : vb95 1602 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention
- 27 oct. 2016 à 17:17
Bonjour,
j'ai voulu me faciliter une certaine tâche
je veux copier le contenue d'un flache disque dans un répertoire qui se trouve dans le bureau
pour copier le contenue d'un répertoire vers un autre, il y a aucun problème
mais d'un disque vers un répertoire c'est impossible car le disque est répertoire racine
j'ai beau chercher je n'ai rien pu trouvé, à par ce code :
http://www.developpez.net/forums/d369150/dotnet/langages/vb-net/copier-contenu-racine-d-disque/
Public Sub CopyAll(ByVal Rep As String)
Dim AncienLecteur As String = "G:\" 'a modifier
Dim NouveauLecteur As String = "‪C:\" 'a modifier
Dim entree As String() = IO.Directory.GetFileSystemEntries(Rep) 'recupere fichiers et dossiers
For Each file As String In entree 'pour chaque fichier
If IO.File.Exists(file) Then 'si c'est true alors c'est un ficheir
Dim info As New IO.FileInfo(file) 'obtient des info sur le fichier
IO.File.Copy(file, Replace(info.FullName, AncienLecteur, NouveauLecteur), True) 'copie le fichier dans le nouveau rep
Else ' c'est un repertoire
MkDir(Replace(file, AncienLecteur, NouveauLecteur)) 'cree le repertoire au bon endroit :)
CopyAll(file) 'liste les fichier de ce rep par reccursivité
End If
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MkDir(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\Dossiers") 'ne pas oublier de créer le repertoire racine !!
CopyAll( "G:\") 'et hop on commence la copie !
End Sub

mais cela ne fonction pas
aidez moi s'il vous plaît
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
vb95 1602 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention - Modifié par vb95 le 27/10/2016 à 17:19
1
Merci
bonjour Karin.code

Cadeau : je suis en forme aujourd'hui
Modifie les répertoires source et Destination à ta guise


Imports System.Threading.Tasks
Imports System.IO

Public Class Form1

Private Destination As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\Dossiers"
Private Source As String = "L:\"

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click

If Directory.Exists(Destination) = True Then
If MessageBox.Show("Le répertoire destination existe déjà : voulez-vous l'effacer ?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then
Exit Sub
Else
Directory.Delete(Destination, True)
End If
End If
CopyDir(New DirectoryInfo(Source), New DirectoryInfo(Destination))
MessageBox.Show("copie terminée")

End Sub

Private Sub CopyDir(ByVal oSource As DirectoryInfo, ByVal oDestination As DirectoryInfo)

Try
oDestination.Create() 'Création du répertoire de destination (le cas échéant)

'Copie de tous ses fichiers (utilise le parallélisme pour de meilleures performances)
Parallel.ForEach(oSource.GetFiles(), Sub(oFichier As FileInfo)
oFichier.CopyTo(Path.Combine(oDestination.FullName, oFichier.Name))
End Sub)

'Copie (par récursivité) de tous ses sous-répertoires
For Each oSousRepertoire As DirectoryInfo In oSource.GetDirectories()
CopyDir(oSousRepertoire, oDestination.CreateSubdirectory(oSousRepertoire.Name))
Next
Catch ex As Exception

End Try

End Sub

End Class


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 

Merci vb95 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 78 internautes ce mois-ci

Karin.code 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention - 27 oct. 2016 à 17:08
Salut vb95
Merci pour le cadeau
il faut aussi ajouter :
Imports System.Threading.Tasks
vb95 1602 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention > Karin.code 183 Messages postés vendredi 2 septembre 2016Date d'inscription 16 janvier 2018 Dernière intervention - 27 oct. 2016 à 17:17
De rien
L'imports
Imports System.Threading.Tasks
est directement ajouté dans les références chez moi : mille excuses

Je l'ai rajouté dans le code pour éviter les erreurs pour de futurs utilisateurs sur le forum
Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.