Copier le contenu d'un répertoire racine

Résolu
Karin.code Messages postés 183 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 16 janvier 2018 - Modifié par vb95 le 27/10/2016 à 15:41
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 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

1 réponse

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié par vb95 le 27/10/2016 à 17:19
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. 
1
Karin.code Messages postés 183 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 16 janvier 2018 2
27 oct. 2016 à 17:08
Salut vb95
Merci pour le cadeau
il faut aussi ajouter :
Imports System.Threading.Tasks
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > Karin.code Messages postés 183 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 16 janvier 2018
Modifié par vb95 le 27/10/2016 à 17:20
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
0
Rejoignez-nous