L'api GetDiskFreeSpaceEx

Signaler
Messages postés
22
Date d'inscription
samedi 20 janvier 2007
Statut
Membre
Dernière intervention
24 décembre 2008
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
bonjour


quand j'utilise l'api GetDiskFreeSpaceEx( )


avec comme premier paramettre 'NULL' ça marche


elle recupere des informations sur le disque dur ,


mais quand je met la lettre qui correspond au lecteur cd la fontion echoue
 
et si par exemple je mettais un C:\\  pour le disque dur ou E:\\ pour le lecteur


la fonction ne retournerais rien


j'ai deja vu l'msdn ça ne m'a pas ajouté grand chose




si vous avez des indications ou un petit exemple de  programme qui illustre


l'utilisation de GetDiskFreeSpaceEx() surtout avec le premier argument


n'hésitez pas à me les proposer




merci


 




 
A voir également:

2 réponses

Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013

Salut !

BOOL GetDiskFreeSpaceEx(
LPCTSTR lpDirectoryName,
PULARGE_INTEGER lpFreeBytesAvailable,
PULARGE_INTEGER lpTotalNumberOfBytes,
PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
Parameters
lpDirectoryName
[in] A pointer to a null-terminated string that specifies a directory on a disk.
If this parameter is NULL, the function uses the root of the current disk.

If this parameter is a UNC name, it must include a trailing backslash, for example, \\MyServer\MyShare\.

This parameter does not have to specify the root directory on a disk. The function accepts any directory on a disk.

MSDN dit que si le premier paramètre est à null, ca retourne les information du disque courrant.
Et d'après l'exemple qui suit, null besoin du :\\ pour spécifier une lettre de lecteur. "C" ou "E" devrait donc suffire.

Sinon, GetDiskFreeSpace(), lui, demande ce :\\ pour spécifier un lecteur.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Ceci fonctionne sans problème pour moi:

__int64 ttlspc, frspc;

GetDiskFreeSpaceEx("E:", 0, (PULARGE_INTEGER)&ttlspc, (PULARGE_INTEGER)&frspc);

printf("%I64d\n", ttlspc-frspc);

"Et d'après l'exemple qui suit, null besoin du :\\ pour spécifier une lettre de lecteur. "C" ou "E" devrait donc suffire."

Non. Demande au moins le : sinon, ça retourne n'importe quoi.

C++ (@++)