c + + - Loop men alle Drives?

Indlæg af Hanne Mølgaard Plasc

Problem



Nå har jeg arbejdet på en HDD Information (Hvordan kan jeg bestemme typen af ​​et bestemt drev? Og det fungerer fint. Men jeg ved ikke hvordan man kan 'tjekke' eller 'loop', men alle drev Disker, USB'er, cd/dvd/bluray, hukommelseskort osv.) Hvordan går jeg igennem dem? Da jeg ikke vil gøre GetDeviceType til hvert brev.

Bedste reference


Nå kan du ringe GetLogicalDrives(), som vil give dig en bitmask af brugte/ubrugte drev: [9]



  Returværdi

  
  Hvis funktionen lykkes, er returværdien en bitmaske, der repræsenterer de aktuelt tilgængelige diskdrev. Bitposition 0 (den mindst signifikante bit) er drev A, bitposition 1 er drev B, bitposition 2 er drev C og så videre.



Så hvis bit 0 har værdi 0, er drev A ikke brugt, hvis den har værdi 1, bruges den. Tilsvarende for de andre drevbogstaver.


For at få drevoplysninger om et bestemt drev er GetDeviceType() det rigtige værktøj. Er der nogen begrænsning, der forhindrer dig i at bruge det?


GetLogicalDrives()
loop through result:
   what is the bit value for the current drive?
    - 0: drive not used, continue
    - 1: drive in use, check what type it is, using GetDeviceType()

Andre referencer 1


Tag et kig på FindFirstVolume, FindNextVolume og FindVolumeClose. Her er et komplet eksempel fra MSDN: Viser volumenstier. [10] [11] [12] [13]

Andre referencer 2


Du kan også bruge GetLogicalDriveStrings. [14]