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

C++ Discussion :

Accès refusé pour obtenir un HFILE sur un repertoire


Sujet :

C++

  1. #1
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut Accès refusé pour obtenir un HFILE sur un repertoire
    Bonjour,
    je veux obtenir un HANDLE sur un repertoire mais je reçois toujours l'erreur 'Accès refusé' par GetLastError().
    J'ai essayé avec CreateFile() et OpenFile et j'ai la même erreur.
    J'ai même tenté de modifier les droits d'accès du repertoire mais en vain.
    voici un bout de code de teste que je veux faire marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	OFSTRUCT of;
    	HFILE hFile = OpenFile("D:\\nouv",&of,OF_SHARE_DENY_NONE);
    	DWORD dwErr = GetLastError();
    	std::cout<<"hfile="<<hFile<<" dwErr="<<dwErr;
    mais j'ai toujours en sortie:
    hfile=-1 dwErr=5
    Merci pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    Bonjour,
    je veux obtenir un HANDLE sur un repertoire mais je reçois toujours l'erreur 'Accès refusé' par GetLastError().
    J'ai essayé avec CreateFile() et OpenFile et j'ai la même erreur.
    J'ai même tenté de modifier les droits d'accès du repertoire mais en vain.
    voici un bout de code de teste que je veux faire marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	OFSTRUCT of;
    	HFILE hFile = OpenFile("D:\\nouv",&of,OF_SHARE_DENY_NONE);
    	DWORD dwErr = GetLastError();
    	std::cout<<"hfile="<<hFile<<" dwErr="<<dwErr;
    mais j'ai toujours en sortie:Merci pour votre aide
    Il est possible que je me trompasse mais il me semblait tout de même que la fonction OpenFile() (ou CreateFile()) ne permettait point d'ouvrir un répertoire. OpenFile() est deprecated, il faut utiliser CreateFile() - si cette dernière fonction échoue, alors OpenFile() va échouer aussi.

    Dans le cas contraire, l'erreur pourrait venir du fait que le répertoire pourrait être ouvert par ailleurs (avec SHARE_DENY_ALL ou quelque chose comme ça). Tu peux utiliser l'outil sysinternals "Process Viewer" pour vérifier ce point. Ceci dit, je n'y croit guère.

    A noter que je ne connais pas de fonction permettant d'obtenir un HANDLE sur un répertoire, ni de fonction utilisant un tel HANDLE. Qu'est-ce que tu souhaites faire ?
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  3. #3
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    En fait, je souhaite lire les données concernant les dates du repertoire (date de creation, date du dernier acces, date de derniere modif) et la/les fonction(s) qui fournissent ces infos requièrent un HANDLE sur le repertoire.
    J'ai peut etre resolu mon probleme en passant par la fonction FindFirstFile() je récupère ainsi la structure WIN32_FIND_DATA qui contient entre autres les données que je cherche.
    Je vous remercie quand même pour votre interet, mais si vous voyez une meilleur methode je suis preneur.
    Cordialement, Hassane.

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    En fait, je souhaite lire les données concernant les dates du repertoire (date de creation, date du dernier acces, date de derniere modif) et la/les fonction(s) qui fournissent ces infos requièrent un HANDLE sur le repertoire.
    J'ai peut etre resolu mon probleme en passant par la fonction FindFirstFile() je récupère ainsi la structure WIN32_FIND_DATA qui contient entre autres les données que je cherche.
    Je vous remercie quand même pour votre interet, mais si vous voyez une meilleur methode je suis preneur.
    Cordialement, Hassane.
    GetFileAttributesEx est al fonction que tu cherches.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    WIN32_FILE_ATTRIBUTE_DATA fileInfo = { 0 };
     
    if (GetFileAttributesEx(path, GetFileExInfoStandard, &fileInfo))
    {
        ...
    }
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  5. #5
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    merci pour votre aide
    maintenant je cherche a modifier la date d'un fichier ou repertoire !
    mais apparament SetFileAttributesEx n'existe pas ! sinon ca m'aurait facilité la vie
    n'avez vous pas une idée ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    C'est certainement possible, mais je ne sais pas comment faire. Ceci dit, il me semble que c'est l'un des opérations effectuée par 7z lorsqu'il décompresse les fichiers ; ça peut valoir le coup de se plonger dans le code...
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  7. #7
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    J'ai enfin réussit a obtenir un HANDLE sur le dossier.
    Il fallait just specifier le flag : FILE_FLAG_BACKUP_SEMANTICS dans dwFlagsAndAttributes (comme dit dans la msdn).

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

Discussions similaires

  1. [EasyPHP] Accès refusé pour l'utilisateur: 'root'@'@localhost'
    Par faamugol dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 06/04/2009, 10h39
  2. accés refusé pour un disque externe
    Par don sedos dans le forum Windows XP
    Réponses: 3
    Dernier message: 19/03/2008, 15h15
  3. Réponses: 1
    Dernier message: 30/01/2008, 16h42
  4. erreur 1045: Accès refusé pour l'utilisateur mot de passe : OUI
    Par antrax2013 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 31/05/2006, 17h03

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