如何获取物理磁盘中未分配的空间信息

本文关键字:分配 信息 空间 磁盘 何获取 获取 | 更新日期: 2023-09-27 18:10:23

谁能帮我一下,如何使用c#获取磁盘中未分配的空间信息?

如何获取物理磁盘中未分配的空间信息

如果您想知道一个卷的总可用空间,您可以使用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

试试这样:

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