Copie de fichier -- accès refusé en VB.NET

Résolu
sniceper Messages postés 19 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 20 septembre 2010 - 6 août 2009 à 19:45
sniceper Messages postés 19 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 20 septembre 2010 - 20 sept. 2010 à 10:38
Bonjour,
Je fais actuellement un petit programme qui permet de sauvegarder mon bureau et mes documents sur un disque externe en utilisant la commande system.IO.File.copy()

Le problème est que lorsque je veux copier le contenu du dossier "bureau", une erreur intervient m'annonçant que l'accès est refusé. Est-il possible de resoudre ce problème?

6 réponses

sedmak Messages postés 12 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 juin 2012
15 sept. 2010 à 14:23
Bonjour

Je sais que ce message date presque d'un an mais je vais orienter qlq un s' il cherche la solution

je pense que l'erreur c'est qu'on ne peut pas copier tous le contenue d'un répertoire avec System.IO.File.Copy car pour le fichier de type Access ca marche, donc il faut faire une boucle qui parcours tous les fichiers de ce répertoire et copier un par un
la solution que j'ai trouver est en C# mais il n'y a pas beaucoup de différence : http://msdn.microsoft.com/fr-fr/library/cc148994.aspx

Bon Chance
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
15 sept. 2010 à 18:26
Salut,

Tu as raison, la classe File traite les fichier et non les dossier.

Voici un exemple de code en VB :

    Public Sub CopyDir(ByVal Source As String, ByVal Target As String)
        '
        Dim srcDir As New IO.DirectoryInfo(Source)
        If Not IO.Directory.Exists(Target) Then
            IO.Directory.CreateDirectory(Target)
        End If
        Dim files() As IO.FileInfo = srcDir.GetFiles()
        For Each file As IO.FileInfo In files
            IO.File.Copy(file.FullName, Target & "" & file.Name)
        Next
        '
    End Sub


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
1
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
7 août 2009 à 09:42
Salut,

Sur quel fichier intervient l'erreur ? Peux-tu poster le bout de code ?

Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
sniceper Messages postés 19 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 20 septembre 2010
7 août 2009 à 11:09
un peu plus d'explication sur le programme:
C'est un programme qui est censé sauvegardé le bureau et les documents sur un disque externe , juste en fournissant la lettre du lecteur de destination. C'est un programme pour mon père qui veut sauvegarder mais que ne sait rien faire sur un PC (le copier coller est deja ardu).

Voila la source:


Public Class Form1
    Dim mode As Integer
    Dim base As Boolean
    Dim disk As String
    Dim fold As String
   
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked Then
            base = True      'Il existe une base de données sur le PC que je propose de sauvegarder ou non
        Else
            base = False
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        fold = Now.Day & "-" & Now.Month & "-" & Now.Year & "  " & Now.Hour & "." & Now.Minute


        If MsgBox("Le disque de destination est-il branché?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
            If mode = 1 Then
                disk = InputBox("Quelle est la lettre du disque 'DISQUE EXTE'?")
                Label1.Text = "COPIE EN COURS ..."
                Label1.ForeColor = Color.LimeGreen
                Try
                    MkDir(disk & ":\Sauvegardes" & fold)
                Catch ex As Exception
                    MkDir(disk & ":\Sauvegardes")
                    MkDir(disk & ":\Sauvegardes" & fold)
                End Try

                System.IO.File.Copy("C:\Documents and Settings\Alain\Bureau", disk & ":\Sauvegardes" & fold & "\Bureau") 'CEST CETTE LIGNE QUI NE PASSE PAS
                System.IO.File.Copy("C:\Documents and Settings\Alain\Bureau", disk & ":\Sauvegardes" & fold & "\Mes documents")


                If base Then
                    Try
                        System.IO.File.Copy("C:\Program files\ALC Gestion\BDD.mdb", disk.ToString & ":\sauvegardes base\BDD_" & Now.Day & "-" & Now.Month & "-" & Now.Year & "--" & Now.Hour & "." & Now.Minute & ".mdb")

                    Catch ex As Exception
                        MkDir(disk & ":\sauvegardes base")
                        System.IO.File.Copy("C:\Program files\ALC Gestion\BDD.mdb", disk.ToString & ":\sauvegardes base\BDD_" & Now.Day & "-" & Now.Month & "-" & Now.Year & "--" & Now.Hour & "." & Now.Minute & ".mdb")
                    End Try
                End If




            Else
                disk = InputBox("Quelle est la lettre du disque 'SAUVEGARDE EEEPC' ?")
                Label1.Text = "COPIE EN COURS ..."
                Label1.ForeColor = Color.LimeGreen
                MkDir(disk & ":" & fold)
                System.IO.File.Copy("C:\Documents and Settings\Alain\Bureau", disk & ":" & fold & "\Bureau")
                System.IO.File.Copy("C:\Documents and Settings\Alain\Bureau", disk & ":" & fold & "\Mes documents")
                If base Then
                    System.IO.File.Copy("C:\Program files\ALC Gestion\BDD.mdb", disk.ToString & ":\sauvegardes base\BDD_" & Now.Day & "-" & Now.Month & "-" & Now.Year & "--" & Now.Hour & "." & Now.Minute & ".mdb")
                End If
            End If
        Else
            MsgBox("Assurez vous que le disque de destination est branché puis appuyez sur 'LANCER LA SAUVEGARDE'")
        End If
        Label1.Text = "COPIE TERMINEE"
        Label1.ForeColor = Color.RoyalBlue
    End Sub

   
    Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
        If RadioButton4.Checked Then
            mode = 1       'Le futur utilisateur possède 2 disques durs externes, qui n'ont pas la même organisation de rangement, je demande donc sur lequel va être sauvegardé les fichiers
        Else
            mode = 2
        End If
    End Sub
End Class
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sniceper Messages postés 19 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 20 septembre 2010
7 août 2009 à 11:12
mince on ne peut pas editer un post:


Je tenais a ajouter que l'erreur exacte était:

"Copie impossible de C:\Documents and Settings\Alain\Bureau, Accès refusé."
0
sniceper Messages postés 19 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 20 septembre 2010
20 sept. 2010 à 10:38
Effectivement, cette question date un peu


Merci quand même pour la réponse, à l'avenir je le saurais (je me suis débrouillé autrement) et la réponse servira peut être à d'autres.
0
Rejoignez-nous