2011-10-05 52 views

回答

3

如果您想知道卷的總可用空間,可以使用DriveInfo.AvailableFreeSpace

http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx

您還可以使用WMI來獲取有關磁盤上的分區信息,使用Win32_DiskPartitionWin32_DiskDrive

Win32_DiskPartition:http://msdn.microsoft.com/en-us/library/aa394135%28VS.85%29.aspx
Win32_DiskDrive:http://msdn.microsoft.com/en-us/library/aa394132%28v=VS.85%29.aspx

可以使用DeviceID場以確定哪個磁盤上的哪個分區,然後使用StartOffsetSize字段建立分區在物理磁盤上的位置圖。然後,只需使用來自Win32_DiskDrive的數據計算出整個磁盤的大小,然後計算餘數。

這裏的MSDN上的一篇文章,應該給你所有你在使用WMI需要的幫助:
http://msdn.microsoft.com/en-us/library/ms257338.aspx

+0

這個工具可能也有用:http://www.ks-soft.net/hostmon.eng/wmi/index.htm – Polynomial

0

嘗試用這樣的事情:

using System.Linq; 
using System.IO; 
using System; 
namespace DriveInfoExample 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Check only for fixed drives 
      foreach (var di in DriveInfo.GetDrives().Where(d=>d.DriveType == DriveType.Fixed)) 
      { 
       Console.WriteLine("Free space on drive {0}\t{1} bytes", di.Name, di.AvailableFreeSpace); 
      } 
     } 
    } 
} 
+0

非常感謝你......我會嘗試一下。 – ashraf