Copie de fichier -- accès refusé en VB.NET [Résolu]

Messages postés
19
Date d'inscription
dimanche 14 août 2005
Dernière intervention
20 septembre 2010
- - Dernière réponse : sniceper
Messages postés
19
Date d'inscription
dimanche 14 août 2005
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?
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
12
Date d'inscription
samedi 27 octobre 2007
Dernière intervention
5 juin 2012
3
Merci
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

Merci sedmak 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de sedmak
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
1
Merci
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.
Commenter la réponse de Mayzz
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
0
Merci
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.
Commenter la réponse de Mayzz
Messages postés
19
Date d'inscription
dimanche 14 août 2005
Dernière intervention
20 septembre 2010
0
Merci
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
Commenter la réponse de sniceper
Messages postés
19
Date d'inscription
dimanche 14 août 2005
Dernière intervention
20 septembre 2010
0
Merci
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é."
Commenter la réponse de sniceper
Messages postés
19
Date d'inscription
dimanche 14 août 2005
Dernière intervention
20 septembre 2010
0
Merci
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.
Commenter la réponse de sniceper

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.