【问题标题】:How to get unallocated space info in a physical disk如何获取物理磁盘中未分配的空间信息
【发布时间】:2011-12-01 04:39:39
【问题描述】:

谁能帮忙,如何使用 C# 获取磁盘中未分配的空间信息?

【问题讨论】:

  • 定义未分配空间信息。可用的可用空间可以吗?

标签: c# hard-drive


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    试试这样的:

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

    【讨论】:

    • 非常感谢...我会试试的。
    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2011-12-08
    • 1970-01-01
    • 2023-03-22
    • 2019-08-06
    • 2020-05-03
    相关资源
    最近更新 更多