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 :

propriétaire d'un fichier , Windows uniquement


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut propriétaire d'un fichier , Windows uniquement
    Bonjour,

    Mon PC sous Windows 7 est connecté à un réseau multi utilisateur.
    je souhaite développer une application en C ou C++.

    Dans cette application j'ai besoin de développer une fonction à laquelle je passe en argument le nom d'un fichier du réseau, et qui me retourne le propriétaire de ce fichier, bien entendu j'ai le droit en lecture. Pareil à la commande DOS :
    DIR /Q toto.c

    qui elle est trop verbeuse.

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 173
    Billets dans le blog
    4
    Par défaut
    Salut,

    t'aurais franchement mieux d'utiliser cette commande et formatter la sortie si tu le souhaites.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    Comme je l ai précisé, elle est trop verbeuse.
    je suis certain qu une fonction existe

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    j'ai demandé à mon navigateur: "c++ get windows file owner name". la première réponse est dans la MSDN. J'imagine que c'est la solution recommandée.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 173
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par jcb44 Voir le message
    Comme je l ai précisé, elle est trop verbeuse.
    Quelle partie de
    Citation Envoyé par Bousk Voir le message
    formatter la sortie
    n'est pas claire ?

    Citation Envoyé par jcb44 Voir le message
    je suis certain qu une fonction existe
    Qui existe ? Oui surement, d'ailleurs Google est pas avare en solution toute écrite en une poignée de ms de recherches.
    Est-ce que c'est une bonne idée pour autant ? Je ne pense pas, sauf à vouloir absolument faire du C++ (et dans ce cas : pourquoi si tu n'as pas la réponse s'entêter au lieu d'utiliser des solutions alternatives tout à fait adéquates ?), ça reste le genre de trucs bien plus pratique à faire en utilisant les commandes systèmes, qui sont là pour ça d'ailleurs.
    Je suis sûr qu'un bon connaisseur de batch et cmd pourrait faire un simple script qui sort la solution espérée. Pas de fichiers à compiler, d'exe à posséder, déployer, juste un .cmd à exécuter.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    Bonjour Ternel,

    merci pour ta réponse.

    quant à Bousk
    je considère sa réponse comme un spam.

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Tu n'as pas vraiment compris l'intérêt de ce forum, j'ai l'impression...
    Notamment du fait que nous sommes là pour nous aider, pas pour forwarder un moteur de recherche.

    La réponse de Bousk est probablement la plus pertinente, d'autant plus que le nom d'un utilisateur étant modifiable, ce n'est pas une information d'identification suffisante.

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 407
    Par défaut
    Le problème lié à la réponse de Bousk est que comme la plupart des outils en ligne de commande Windows, la sortie de dir /Q n'est pas exactement computer-friendly. Notamment, j'ai une ligne comme ça:
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    03/08/2016  14:01               136 BUILTIN\AdministrateursTest.rtf
    On notera l'absence de tout séparateur entre le nom du groupe Administrateurs et celui du fichier.

    En C ou C++, la fonction la plus facile à utiliser pour récupérer le nom du propriétaire d'un fichier (en supposant qu'on ait déjà les droits en lecture dessus, sans avoir à utiliser des privilèges administrateur) semble être GetNamedSecurityInfo

    Un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    string nomFichier = "blabla";
    PSID psidProprio = nullptr;
     
    /*GetNamedSecurityInfo(
      _In_      LPTSTR               pObjectName,
      _In_      SE_OBJECT_TYPE       ObjectType,
      _In_      SECURITY_INFORMATION SecurityInfo,
      _Out_opt_ PSID                 *ppsidOwner,
      _Out_opt_ PSID                 *ppsidGroup,
      _Out_opt_ PACL                 *ppDacl,
      _Out_opt_ PACL                 *ppSacl,
      _Out_opt_ PSECURITY_DESCRIPTOR *ppSecurityDescriptor);*/
     
    DWORD erreur = GetNamedSecurityInfoA(const_cast<LPSTR>(nomFichier.c_str()), SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION, &psidProprio, nullptr, nullptr, nullptr, nullptr);
    if(erreur == ERROR_SUCCESS)
    {
    	const int TAILLE_BUFFER = 256;
    	char buffer[TAILLE_BUFFER] = "";
    	DWORD cchBuffer = TAILLE_BUFFER;
    	SID_NAME_USER type;
    	BOOL bObtenuNom = LookupAccountSidA(nullptr, psidProprio, buffer, &cchBuffer, nullptr, nullptr, &type)
    	if(bObtenuNom)
    		cout << "Nom proprietaire: "<< buffer << endl;
    	FreeSid(psidProprio);
    }
    Je n'ai pas testé, mais c'est l'idée générale. Note que je ne sais pas comment obtenir le "display name" d'un utilisateur.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    Merci Médinoc,

    je vais essayer ta solution et celle de Ternel la semaine prochaine et vous tiendrai au courant.

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

Discussions similaires

  1. Connaitre le nom du propriétaire d'un fichier
    Par zygoto dans le forum Access
    Réponses: 8
    Dernier message: 12/07/2006, 22h07
  2. [VB]Acces aux proprietes des fichiers windows
    Par oliviersof dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 27/01/2006, 17h10
  3. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32
  4. Propriétaire d'un fichier en NTFS
    Par numberwan dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2003, 08h22
  5. Réponses: 2
    Dernier message: 26/06/2002, 13h16

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