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 :

Créer un fichier caché sous Windows


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 16
    Par défaut Créer un fichier caché sous Windows
    Bonjour,

    Je code en Qt et je cherche une fonction qui pourrait créer ou modifier les attributs d'un fichier (dans mon cas "Path.dat").
    Je n'ai pas trouvé.

    Par contre, je suis tombé sur une fonction Windows : SetFileAttributes(fichier, option).

    Ce fichier serait dans le répertoire courant.
    Le problème c'est que cette fonction échoue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SetFileAttributes((LPCTSTR)"Path.dat", FILE_ATTRIBUTE_HIDDEN)
    Est-ce que quelqu'un saurait pourquoi ?

    Je vous remercie.

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Essaye déjà de sécuriser ta chaine de caractère en ajoutant _T.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 16
    Par défaut
    je n'ai pas compris, tu le places où _T ?

    J'ai essayé plusieurs possibilités,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SetFileAttributes((LPCTSTR) _T("Path.dat"), FILE_ATTRIBUTE_HIDDEN)
    J'ai rajouté l'include correspondant, à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <tchar.h>
    mais mon fichier à la fin, n'est toujours pas caché...

    Tu as une solution ?

  4. #4
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Dans le code que tu as linké le _T est bien placé
    En effet un LPCTSTR est un pointeur sur un TCHAR, d'où la nécessité d'ajouter le _T par sécurité (car si tu ne compiles pas en ANSI tu vas avoir des problèmes ).

    Pour en revenir à ton problème de fichier caché, c'est un problème de programmation Win32 en C++ et non un soucis lié à Qt : je déplace ton post dans le forum adéquat pour plus de visibilité.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 16
    Par défaut
    Je te remercie pour ton petit plus.

    Je relance la question.
    Je sais que la fonction échoue,

    Est-ce que quelqu'un peut me dire si j'oublie quelque chose ?

  6. #6
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Généralement, l'API Win32 n'apprécie pas trop les chemins relatifs, je te conseille donc de donner un chemin absolu, de plus il faut que tu vérifies que ton fichier existe.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 16
    Par défaut
    J'ai testé l'existence du fichier, il est bien vu.

    J'ai essayé en donnant le chemin absolu, ca ne marche toujours pas...

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Généralement, l'API Win32 n'apprécie pas trop les chemins relatifs, je te conseille donc de donner un chemin absolu, de plus il faut que tu vérifies que ton fichier existe.
    Ha ? L'API Win32 des fichiers gère très bien les chemins relatifs. Par contre, si il y a un problème, la cause est souvent chez l'utilisateur ou le développeur qui a "oublié" que le chemin est relatif par rapport au répertoire courant. Le répertoire courant qui se récupère avec la fonction GetCurrentDirectory() de l'API Win32.

    Pour revenir au problème initial, sur un système de fichiers Windows NTFS cohabitent 2 systèmes de droits. Les droits historiques hérités du DOS et les droits NTFS.

    Les droits historiques hérités du DOS se modifient avec la fonction SetFileAttributes(). Les droits NTFS se modifient avec la fonction SetSecurityInfo().

    Il faut savoir aussi que les droits DOS ne peuvent pas être plus grands/permissifs que les droits NTFS. A mon avis, ces droits devraient être oubliés maintenant.

    Donc la question est : as tu le droits (NTFS) de modifier le fichier que tu veux modifier(droits sur le fichier et sur le répertoire qui contient ce fichier).
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. créer un fichier Jar sous eclipse
    Par gagalive dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 18/07/2006, 11h46
  2. créer un fichier caché
    Par boss_gama dans le forum ASP
    Réponses: 1
    Dernier message: 10/07/2006, 11h03
  3. Réponses: 4
    Dernier message: 18/05/2006, 15h00
  4. [DOM] Créer un fichier XML sous une forme bien précise
    Par LaseLiep dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 09/06/2005, 18h05
  5. Afficher un fichier binaire sous Windows
    Par Atomikx dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 14/12/2004, 00h29

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