Copier le contenu d'un disc

Signaler
Messages postés
17
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
13 mai 2012
-
Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
-
 
bonsoir
je suis en train de fair un travaille  et j'ai un petit probleme avec comment fair  pour
 copier le contenu d'un disc que ca soit un DD ou CDROM ou une clé usb vers aun autre
et merci

1 réponse

Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
Salut,

Voici un code qui permet de le faire à toi d'adapter en fonction de tes besoins :

Public Class Form1
    Private ThreadCopie As Threading.Thread
    Dim fbd As New FolderBrowserDialog
    Public lecteur As String =   "C:"

     Private Sub  Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        CopieDrive(lecteur)
    End Sub

    Sub CopieDrive(ByVal drive As String)
        ' Boolean permettant de vérifier si la lettre du lecteur
        ' spécifié existe
        Dim ok As Boolean  = False

        ' On récupère tous les lecteurs logiques présents sur l'ordinateur
        For Each localdrive As String In Environment.GetLogicalDrives
            ' On teste si l'un des lecteurs présent correspond à celui
            ' qu'on a spécifié
            If drive =  localdrive  Then
                ' Le lecteur qu'on a spécifié existe bien
                ' on met le boolean ok à True
                ok  = True
                ' On quitte la boucle for car on a trouvé ce qu'on voulait
                Exit For
            End If
        Next

        ' Si ok =  False, cela signifie qu'aucun lecteur ne correspond à celui
        ' qu'on a spécifié
         If  ok  = False Then
            ' Affichage d'un message à l'utilisateur
            MsgBox( "Désolé, le lecteur que vous avez spécifié n'existe pas ou est incorrect" )
            Exit Sub
        End If

        ' On déclare une variable DriveInfo, afin de pouvoir obtenir des infos
        ' sur un lecteur
        Dim Di As New System.IO.DriveInfo(drive)

        ' On teste si le lecteur est prêt
        If Di.IsReady  =   False Then
            ' Le lecteur n'est pas prêt
            MsgBox("Désolé, le lecteur que vous avez spécifié ne semble pas prêt")
            Exit Sub
        End If

        ' On définit le répertoire à l'affichage de fbd
        ' Ici Poste de Travail
        fbd.RootFolder  =  Environment.SpecialFolder.MyComputer
        ' On autorise la création d'un nouveau dossier
        fbd.ShowNewFolderButton =   True
        ' On spécifie une description
        fbd.Description  =  "Veuillez choisir l'endroit de destination"
        ' On affiche la fbd et on teste si l'utilisateur a cliqué sur OK
        If fbd.ShowDialog()  =  Windows.Forms.DialogResult.OK  Then
            ' Nécessite de lancer la copie dans un autre Thread
            ' car la copie d'un lecteur entier (CD-ROM par exemple)
            ' peut bloquer l'interface de l'utilisateur
            ThreadCopie  =  New Threading.Thread(AddressOf DemarrerCopie) 'DemarrerCopie est la fonction exécutée par le thread.
            ThreadCopie.Name =   "ThreadCopie"  'Il est parfois pratique de nommer les threads surtout si on en créé plusieurs.
            ThreadCopie.Start() ' Démarrage du thread.
         End If
    End Sub

    Sub DemarrerCopie()
        For Each Files As String In My.Computer.FileSystem.GetFiles(lecteur, FileIO.SearchOption.SearchAllSubDirectories)
            Try
                Dim Fi As New System.IO.FileInfo(Files)
                My.Computer.FileSystem.CopyFile(Files, fbd.SelectedPath + "" + Fi.Name)
            Catch ex As Exception
            End Try

        Next
    End Sub

End Class

<hr size ="2" width="100%" />Pensez : Réponse Acceptée