48 votes

Comment récupérer des informations sur le disque en C #?

Je souhaite accéder aux informations sur les lecteurs logiques de mon ordinateur à l'aide de C #. Comment devrais-je accomplir cela? Merci!

76voto

Vinko Vrsalovic Points 116138

Pour la plupart des informations, vous pouvez utiliser la classe DriveInfo .

 using System;
using System.IO;

class Info {
    public static void Main() {
        DriveInfo[] drives = DriveInfo.GetDrives();
        foreach (DriveInfo drive in drives) {
            //There are more attributes you can use.
            //Check the MSDN link for a complete example.
            Console.WriteLine(drive.Name);
            if (drive.IsReady) Console.WriteLine(drive.TotalSize);
        }
    }
}
 

6voto

Foozinator Points 105

Qu'en est-il des volumes montés, où vous n'avez pas de lettre de lecteur?

 foreach( ManagementObject volume in 
             new ManagementObjectSearcher("Select * from Win32_Volume" ).Get())
{
  if( volume["FreeSpace"] != null )
  {
    Console.WriteLine("{0} = {1} out of {2}",
                  volume["Name"],
                  ulong.Parse(volume["FreeSpace"].ToString()).ToString("#,##0"),
                  ulong.Parse(volume["Capacity"].ToString()).ToString("#,##0"));
  }
}
 

5voto

rravuri Points 244

3voto

DarwinIcesurfer Points 444

Remarque: La réponse proposée par TheVillageIdot fonctionne très bien si le système d'exploitation est Windows Server 2003 ou une version plus récente. Win_32 Le volume n'existe pas sur Windows XP. Si vous exécutez ceci dans Windows XP, une erreur "Classe non valide" est générée.

3voto

bruno conde Points 28120

Vérifiez la classe DriveInfo et voyez si elle contient toutes les informations dont vous avez besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X