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 :

Lister les "lecteurs logiques" alias "partitions" d'un ordinateur


Sujet :

Windows

  1. #1
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut Lister les "lecteurs logiques" alias "partitions" d'un ordinateur
    Bonjour,

    Voila tout est dans le titre : comment faire pour récupérer les partitions (C, D, E etc...) d'un ordinateur, si elles sont présentes ?

    Merci d'avance.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 581
    Points
    41 581
    Par défaut
    Sous Windows, je fais une boucle avec GetVolumeInformation() sur chaque lecteur, mais il y a peut-être plus propre...

  3. #3
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Bin j'ai trouvé FindFirstVolume() sur msdn, mais malgré avoir inclus ce qu'il fallait (à savoir windows.h), elle n'est pas déclarée. Je ne vois pas ce qui peut se passer...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 581
    Points
    41 581
    Par défaut
    Tu as pensé aux defines _WIN32_WINNT et WINVER ?

  5. #5
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Oui pour le WIN32_WINNT : il est redéfini.
    Mais par contre l'autre ... qu'est ce ?

    [EDIT] Oui celui là aussi est redéfini.

  6. #6
    CGi
    CGi est déconnecté
    Expert éminent
    Avatar de CGi
    Inscrit en
    Mars 2002
    Messages
    1 051
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 1 051
    Points : 8 283
    Points
    8 283
    Par défaut
    il y a la fonction GetLogicalDriveStrings qui rempli un buffer avec tous les disques valide du systeme.

  7. #7
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Mais je suppose que cette fonction me retournera une multistring (décidément c'est pas pratique ... merci microsoft) contenant tous lesdisques logiques, y compris les lecteurs flash etc... or moi je ne voudrais que les partitions.
    Il doit bien y avoir un moyen de la faire marcher cette satanée fonction !

    En fait j'ai fait une fonction permettant de récupérer toutes les musiques présentes sur le disque (merci Medinoc pour ton aide) mais encore me faut il les lettres assignées par le BIOS (C:\\, D:\\ etc) pour pouvoir laisser le choix du disque à scanner à l'utilisateur.

    Avec ces infos, que me conseilleriez vous ?

  8. #8
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    FindFirstVolume ne retourne pas les partitions.

    Ca me retourne :

    Volume found is "\\?\Volume{48f56101-20b4-11da-bc19-806d6172696f}\".
    Volume found is "\\?\Volume{d856cb60-f8ca-11da-9c7c-806d6172696f}\".
    Volume found is "\\?\Volume{d856cb61-f8ca-11da-9c7c-806d6172696f}\".
    Volume found is "\\?\Volume{d856cb62-f8ca-11da-9c7c-806d6172696f}\".
    Volume found is "\\?\Volume{48f560fb-20b4-11da-bc19-806d6172696f}\".
    Volume found is "\\?\Volume{48f560fc-20b4-11da-bc19-806d6172696f}\".
    Volume found is "\\?\Volume{48f560fd-20b4-11da-bc19-806d6172696f}\".
    Volume found is "\\?\Volume{4920faf0-090b-11db-824e-806d6172696f}\".
    Volume found is "\\?\Volume{48f560f6-20b4-11da-bc19-806d6172696f}\".
    La meilleur solution reste GetLogicalDriveStrings + GetDriveType.

    Exemple:
    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
    #include <windows.h>
    #include <stdio.h>
    
    int main()
    {
    	char buf[4 * 26 + 1];
    	char *p;
    	
    	GetLogicalDriveStrings( sizeof(buf) - 1, buf );
    	
    	for( p = buf; *p != '\0'; p += 4 )
    	{
    		UINT uType = GetDriveType( p );
    		
    		if ( uType == DRIVE_FIXED )
    		{
    			printf( "DRIVE_FIXED -> %s\n", p );
    		}
    	}
    	
    	return 0;
    }

  9. #9
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Merci tu as eu exactement la même idée que moi. Je finissais justement de l'intégrer à mon code. Pour info, cela marche parfaitement. Mais j'ai une question : Conçernant les lecteurs CD / DVD : Si aucun disque n'est présent et que l'utilisateur les sélectionne quand même (admettons) L'utilisation des findfirstfile et autre plantera ou pas ? C'est pour savoir si j'oblige à choisir entre les partitions ou aussi les lecteurs...

  10. #10
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Citation Envoyé par kidpaddle2
    Merci tu as eu exactement la même idée que moi. Je finissais justement de l'intégrer à mon code. Pour info, cela marche parfaitement. Mais j'ai une question : Conçernant les lecteurs CD / DVD : Si aucun disque n'est présent et que l'utilisateur les sélectionne quand même (admettons) L'utilisation des findfirstfile et autre plantera ou pas ? C'est pour savoir si j'oblige à choisir entre les partitions ou aussi les lecteurs...
    Planter ? non.

    FindFirstFile renverra INVALID_HANDLE_VALUE et GetLastError renverra ERROR_NOT_READY.

  11. #11
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    OK merci de votre aide, je vais pouvoir finir mon projet.

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

Discussions similaires

  1. Lister les lecteurs cd et dvd
    Par fab56 dans le forum Delphi
    Réponses: 7
    Dernier message: 16/07/2007, 20h18
  2. [D6] Lister les lecteurs d'une machine
    Par Lucien dans le forum Delphi
    Réponses: 3
    Dernier message: 19/09/2006, 15h49
  3. [Réseau] Lister les fichiers d'un lecteur réseau
    Par ViRouF dans le forum Langage
    Réponses: 10
    Dernier message: 04/07/2006, 10h55
  4. Comment lister les lecteur réseaux
    Par koolway dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 27/03/2006, 12h13
  5. [MBR] Lister les lecteurs connectés
    Par Celelibi dans le forum Assembleur
    Réponses: 6
    Dernier message: 18/08/2005, 05h22

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