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

Windows Discussion :

[API] Recuperer le nom du fichier avec seulement son handle


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut [API] Recuperer le nom du fichier avec seulement son handle
    Bonjour a tous,

    Mon probleme est le suivant:

    Il me faudrait pouvoir recuperer le chemin et le nom du fichier juste avec le handle que me retourne CreateFile.

    Malheureusement j'ai peur que ca ne soit pas possible, j'ai bien essaye avec GetFileInformationByHandle qui me retourne une structure BY_HANDLE_FILE_INFORMATION
    mais sauf erreur de ma part il n'y a pas le nom du fichier dedans.

    Donc si queluu'un peut m'aider ou me confirmer que ca n'est pas possible, merci d'avance

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 681
    Points
    10 681
    Billets dans le blog
    3
    Par défaut
    C'est un peu étrange comme question, dans la mesure où tu es censé avoir une trace du nom du fichier vu que tu le passes à CreateFile...
    Mais bon. Je ne crois pas que ce soit possible en Win32. Sous NT, je pense qu'avec l'API Native ça devrait marcher (via NtQueryObject):
    http://windows.developpez.com/cours/api-native/

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    C'est un peu étrange comme question, dans la mesure où tu es censé avoir une trace du nom du fichier vu que tu le passes à CreateFile...
    Je sais, je sais

    Citation Envoyé par Aurelien.Regat-Barrel
    Mais bon. Je ne crois pas que ce soit possible en Win32. Sous NT, je pense qu'avec l'API Native ça devrait marcher (via NtQueryObject):
    http://windows.developpez.com/cours/api-native/


    Merci pour ca, je vais allez me documenter.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Document tres interressant, je ne connaissais pas du tout l'existence de cette API cachee et son potentiel

    et effectivement j'ai pu le faire grace NtQueryObject
    pour ceux que ca interressent voici ma fonction:

    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
    BOOL	GetNameByHandle(HANDLE hFile, LPSTR szRetBuff)
    {
    	WCHAR					pbyBuff[1024];
    	HINSTANCE				hntdll			= LoadLibrary(TEXT("ntdll.dll"));
    	NTQUERYOBJECT			NtQueryObject	= (NTQUERYOBJECT)GetProcAddress(hntdll, "NtQueryObject");
    
    	if (NtQueryObject == 0)
    	{
    		CloseHandle(hntdll);
    		return (FALSE);
    	}
    	memset(pbyBuff, 0, sizeof(pbyBuff));
    	NtQueryObject(hFile, OBJECT_NAME_INFORMATION, pbyBuff, sizeof(pbyBuff), NULL);
    
    	_Unicode2Ansi(pbyBuff + 4, szRetBuff);
    
    	CloseHandle(hntdll);
    	return (TRUE);
    }
    Merci encore pour ce precieux renseignement.

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

Discussions similaires

  1. [XSLT 2.0] recuperation de nom de fichier avec xslt
    Par penhil dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 25/05/2012, 12h56
  2. Réponses: 7
    Dernier message: 07/01/2006, 15h18
  3. [ Debutant ] Recuperer un nom de fichier
    Par 13obscur dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/02/2005, 09h59
  4. changement de nom de fichier avec smartupload
    Par bourvil dans le forum ASP
    Réponses: 2
    Dernier message: 24/05/2004, 14h50

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