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 :

espace utilisé du cd


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut espace utilisé du cd
    bonjour tout le monde

    je cherche une api qui retourne l'espace utilisé d'un cd
    plate forme:
    visual c++
    windows xp

    merci

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    GetDiskFreeSpaceEx() ?
    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.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut utiliser GetDiskFreeSpaceEx()
    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

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    En inventant rien: google + nom de la methode

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    #include <Windows.h>
    #include <stdio.h>
     
    typedef BOOL (WINAPI *PGETDISKFREESPACEEX)(LPCSTR,
       PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
     
    BOOL MyGetDiskFreeSpaceEx(LPCSTR pszDrive)
    {
       PGETDISKFREESPACEEX pGetDiskFreeSpaceEx;
       __int64 i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes;
     
       DWORD dwSectPerClust, 
             dwBytesPerSect, 
             dwFreeClusters, 
             dwTotalClusters;
     
       BOOL fResult;
     
       pGetDiskFreeSpaceEx = (PGETDISKFREESPACEEX) GetProcAddress( 
                               GetModuleHandle("Kernel32.dll"),
                              "GetDiskFreeSpaceExA");
     
       if (pGetDiskFreeSpaceEx)
       {
          fResult = pGetDiskFreeSpaceEx (pszDrive,
                     (PULARGE_INTEGER)&i64FreeBytesToCaller,
                     (PULARGE_INTEGER)&i64TotalBytes,
                     (PULARGE_INTEGER)&i64FreeBytes);
     
       // Process GetDiskFreeSpaceEx results.
          if(fResult) 
          {
             printf("Total free bytes = %I64d\n", i64FreeBytes);
          }
          return fResult;
       }
     
       else 
       {
          fResult = GetDiskFreeSpaceA (pszDrive, 
                     &dwSectPerClust, 
                     &dwBytesPerSect,
                     &dwFreeClusters, 
                     &dwTotalClusters);
     
       // Process GetDiskFreeSpace results.
          if(fResult) 
          {
             printf("Total free bytes = %I64d\n", 
                 dwFreeClusters*dwSectPerClust*dwBytesPerSect);
          }
          return fResult;
       }
    }
    int main(int argc, char *argv[])
    {
     
    	MyGetDiskFreeSpaceEx ("C:");
    	MyGetDiskFreeSpaceEx ("Z:");
    	MyGetDiskFreeSpaceEx ("X:");
    	MyGetDiskFreeSpaceEx ("O:");
     
    }
    il suffit alors de remanier l'argument de retour pour renvoyer la valeur desiré et le tour est joué.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Euh...
    Pourquoi récupérer dynamiquement la fonction ?
    Elle existe depuis Windows 95 OSR2...
    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.

  6. #6
    Membre éprouvé
    Inscrit en
    Mai 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2007
    Messages : 157
    Par défaut
    J'ai juste recupere la faq MSDN. Ce que je voulais montrer surtout c'est de passer en argument la valeur c: et non pas c:\\

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

Discussions similaires

  1. Récupération de l'espace utilisé dans la syslog en ASE 15
    Par tibal dans le forum Adaptive Server Enterprise
    Réponses: 2
    Dernier message: 17/11/2011, 10h27
  2. Réponses: 1
    Dernier message: 30/04/2009, 14h32
  3. Réponses: 4
    Dernier message: 16/04/2008, 10h47
  4. Espace utilisé par une colonne de type TEXT
    Par efficks dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/02/2006, 16h34
  5. Espace utilisé disque faux
    Par jcpitaud dans le forum Windows XP
    Réponses: 3
    Dernier message: 26/01/2006, 19h08

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