Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018
-
Modifié par vb95 le 27/10/2016 à 15:41
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023
-
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
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 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.
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 27 oct. 2016 à 17:08
Salut vb95
Merci pour le cadeau
il faut aussi ajouter :
Imports System.Threading.Tasks
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 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
27 oct. 2016 à 17:08
Merci pour le cadeau
il faut aussi ajouter :
Imports System.Threading.Tasks
Modifié par vb95 le 27/10/2016 à 17:20
L'imports 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