OVH Cloud OVH Cloud

[win] trouver les disques logiques disponibles

3 réponses
Avatar
sebastien Tricoire
salut!
je suis entrain de faire un browser de fichier et j'essaye de recupérer
la liste des disques disponibles.
mon probleme est le suivant:
j'arrive a choper les noms des disques grace a "GetLogicalDriveStrings"
mais pour certains disques ( par exemple le a: qui ne contiends pas
forcement de disque ) il me faut une verification suplementaire car si
j'essaye un "_findfirst" avec ce disque mon soft crashe.

sauriez vous quelle fonction utiliser pour faire cette verification?

3 réponses

Avatar
Patrick D.
On Sun, 20 Mar 2005 19:02:26 +0100, sebastien Tricoire
wrote:

salut!
je suis entrain de faire un browser de fichier et j'essaye de recupérer
la liste des disques disponibles.
mon probleme est le suivant:
j'arrive a choper les noms des disques grace a "GetLogicalDriveStrings"
mais pour certains disques ( par exemple le a: qui ne contiends pas
forcement de disque ) il me faut une verification suplementaire car si
j'essaye un "_findfirst" avec ce disque mon soft crashe.

sauriez vous quelle fonction utiliser pour faire cette verification?



tu fais un findfirst avec une gestion de l'erreur

j'avais ça dans un vieux programme en turbopascal, on doit pouvoir en
faire autant sous windows ....

--
* enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez
m'écrire *
* Donne un poisson à un homme, il aura à manger pour un jour
* Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
Avatar
Christian ASTOR
sebastien Tricoire wrote:

j'arrive a choper les noms des disques grace a "GetLogicalDriveStrings"
mais pour certains disques ( par exemple le a: qui ne contiends pas
forcement de disque ) il me faut une verification suplementaire car si
j'essaye un "_findfirst" avec ce disque mon soft crashe.



sauriez vous quelle fonction utiliser pour faire cette verification?



Si c'est pour vérifier si non vide, SetErrorMode()
Avatar
Pierre Maurette
sebastien Tricoire a écrit :
salut!
je suis entrain de faire un browser de fichier et j'essaye de recupérer
la liste des disques disponibles.


Peut-être réinventer la roue, mais je le fais également ;-)

mon probleme est le suivant:
j'arrive a choper les noms des disques grace a "GetLogicalDriveStrings"
mais pour certains disques ( par exemple le a: qui ne contiends pas
forcement de disque ) il me faut une verification suplementaire car si
j'essaye un "_findfirst" avec ce disque mon soft crashe.


Pourquoi _findfirst()? Regardez peut-être FindFirstFile() & Co, et
profitez-en pour la famille autour de GetDriveType()
Vous écrivez "mon soft crashe", il me semble que le message affiché par
l'exception est suffisamment clair pour l'utilisateur. Attention de le
tester en release pour savoir ce qui se passe vraiment. Sinon, traitez
l'exception.

sauriez vous quelle fonction utiliser pour faire cette verification?


Si vous ne voulez pas attraper l'exception, essayez:

bool DisquePresent = GetVolumeInformation
("a:", NULL, 0, NULL, NULL, NULL, NULL, 0);

Ça ne se comporte pas chez moi tout à fait comme l'annonce MSDN, mais je
n'ai lu qu'en diagonale.

Tout le reste du code que j'ai là-dessus est très entâché ce
C++Builderismes ...
--
Pierre