c# disk

¿Cómo recupero la información del disco en C#?



disk (5)

¿Qué pasa con los volúmenes montados, donde no tiene letra de unidad?

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")); } }

Me gustaría acceder a la información sobre las unidades lógicas en mi computadora usando C #. ¿Cómo debo lograr esto? ¡Gracias!


Compruebe la clase de DriveInfo y vea si contiene toda la información que necesita.


Para obtener más información, puede usar la clase 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); } } }


Si desea obtener información para unidades individuales / específicas en su máquina local. Puedes hacerlo de la siguiente manera usando la clase DriveInfo :

//C Drive Path, this is useful when you are about to find a Drive root from a Location Path. string path = "C://Windows"; //Find its root directory i.e "C://" string rootDir = Directory.GetDirectoryRoot(path); //Get all information of Drive i.e C DriveInfo driveInfo = new DriveInfo(rootDir); //you can pass Drive path here e.g DriveInfo("C://") long availableFreeSpace = driveInfo.AvailableFreeSpace; string driveFormat = driveInfo.DriveFormat; string name = driveInfo.Name; long totalSize = driveInfo.TotalSize;