列出C#中的所有磁盘分区

时间:2013-06-18 18:27:10

标签: c# wmi

我一直在编写用于列出磁盘所有分区的代码,但我发现了一个问题。 WMI的Win32_DiskDrive属性Partitions向我显示一个测试磁盘有5个分区,但我只能列出其中的四个(最后两个分区显示为只有一个)。最后两个分区是主分区,但一个是SWAP分区,另一个是Linux分区。

2 个答案:

答案 0 :(得分:2)

我认为这应该可以解决问题:

    /// <summary>
    /// Loads all Drives of the Computer and returns a List.
    /// </summary>
    private List<DriveInfo> LoadDrives()
    {
        var drives = new List<DriveInfo>();
        foreach (DriveInfo drive in DriveInfo.GetDrives())
        {
            if (drive.IsReady)
            {
                drives.Add(drive);
            }
        }
        return drives;
    }

答案 1 :(得分:1)

我相信你想要的是string[] System.IO.Directory.GetLogicalDrives()

对于使用string的每个GetLogicalDrives,您可以创建一个System.IO.DriveInfo对象,该对象将提供有关逻辑驱动器的各种信息。

DriveInfo.GetDrives()可能是上面给出的两个步骤的快捷方式。我不完全确定,但文档不是很清楚。