2016-10-05 147 views
1

我實現了通過訪問路徑「\\。\ PhysicalDrive0」逐位讀取和分析物理磁盤的程序。C# - 獲取物理驅動器(不是邏輯驅動器)的列表或數量

我希望用戶在物理磁盤列表中選擇物理磁盤。

我知道我可以讀取另一個物理磁盤,如果我更改路徑的最後一個號碼, 但我不知道如何獲取物理磁盤列表或物理磁盤的數量。

我怎樣才能獲得物理磁盤號碼列表?

我必須使用哪個函數?

回答

1

使用WMI,例如:

List<String> result; 

var query = new WqlObjectQuery("SELECT * FROM Win32_DiskDrive"); 
using (var searcher = new ManagementObjectSearcher(query)) 
{ 
    result = searcher.Get() 
        .OfType<ManagementObject>() 
        .Select(o => o.Properties["DeviceID"].Value.ToString()) 
        .ToList(); 
} 

這給你係統中的物理驅動器的設備ID的列表。

+0

它輸出4個硬盤的所有相同名稱。 – dolgom

+0

我需要每個物理磁盤的編號。 – dolgom

+0

我已經更新了我的答案 - 儘管它僅作爲示例代碼提供。看看其他可用的屬性,如果這仍然不是你想要的。 – decPL