IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Lecture/écriture sur un dossier: permission refusée [AC-2007]


Sujet :

Access

  1. #1
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Lecture/écriture sur un dossier: permission refusée
    Bonjour à tous !

    Tout est dans le titre:

    Je crée dynamiquement un dossier d'export via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set FSO = CreateObject("Scripting.FileSystemObject")
    vérification d'existence des dossiers en sortie et en entrée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        rep = strRep_In
        Set FSO = CreateObject("Scripting.FileSystemObject")
        If FSO.FolderExists(rep) = False Then
            rep = MsgBox("Répertoire de sortie des media à exporter non créé.", vbCritical + vbOKOnly, "SESAM")
            Exit Sub
        End If
        rep = strRep_Out
        If FSO.FolderExists(rep) = False Then
            rep = MsgBox("Répertoire des media à exporter non créé.", vbCritical + vbOKOnly, "SESAM")
            Exit Sub
        End If
    Boucle de copie des fichiers. Vous noterez l'utilisation de SetAttr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Do While .EOF = 0
                ficSrc = !Media_FullPath: ficDest = AddBackslash(strRep_In) & "PHOTOS\"
                SetAttr ficDest, vbNormal
                Set ficName = FSO.getfile(ficSrc)
                Forms!pgbar!PTxt = ficName.Name
                Forms!pgbar!pgbar = .PercentPosition
                Forms!pgbar.SetFocus
                FSO.CopyFile ficSrc, ficDest
                DoEvents
                .MoveNext
            Loop
    Le dossier de sortie est systématiquement recréé avant l'appel de cette procédure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        rep = "C:\Poubelle\Sortie_Fouille\Sortie_Filtre\PHOTOS"
        If FSO.FolderExists("C:\Poubelle\Sortie_Fouille\Sortie_Filtre\PHOTOS") = False Then FSO.CreateFolder "C:\Poubelle\Sortie_Fouille\Sortie_Filtre\PHOTOS"
        If FSO.FolderExists(rep) Then
            SetAttr rep, vbNormal
            DoEvents
        End If
        DoEvents
    Et pourtant une fois sur deux j'ai le message : "permission refusée"
    A ce stade si, depuis l'explorateur, j'enlève lecture seule "à la main" pour le dossier de destination, le code peut continuer.

    Tout se passe comme si SetAttr ne faisait rien (ou mal utilisé?)

    Avez-vous une idée de mon erreur ?
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Lecture/écriture sur un dossier: permission refusée
    OK, je crois avoir trouvé!

    Pour ceux que çà intéresse: il a suffit d'insérer un DoEvents entre la suppression d'un répertoire et sa re-création.

    Je laisse ce post ouvert quelque temps au cas où quelqu'un trouverait autre chose...
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lecture/écriture dans un dossier linux
    Par mariusapo dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 02/11/2007, 23h13
  2. [VB6] Vérification des droits de lecture/écriture sur répert
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 01/02/2006, 18h41
  3. Problème d'attribut de lecture seule sur des dossiers
    Par Redbull dans le forum Sécurité
    Réponses: 2
    Dernier message: 09/08/2005, 09h52
  4. Lecture / écriture sur un port com
    Par dorian833 dans le forum C++
    Réponses: 7
    Dernier message: 07/07/2005, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo