如何在物理磁盘中获取未分配的空间信息
任何人都可以帮忙,如何使用C#在磁盘中获取未分配的空间信息?
如果您想知道卷的总可用空间,可以使用DriveInfo.AvailableFreeSpace
。
http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx
您还可以使用WMI通过Win32_DiskPartition
和Win32_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
字段来标识哪个分区位于哪个磁盘上,然后使用StartOffset
和Size
字段构建parititions在物理磁盘上的位置的映射。 然后只需使用Win32_DiskDrive
的数据来计算整个磁盘大小,并计算余数。
这是一篇关于MSDN的文章,它可以为您提供使用WMI所需的所有帮助:
http://msdn.microsoft.com/en-us/library/ms257338.aspx
试试这样的事情:
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); } } } }