我正在C#中爲Windows不支持的文件系統創建實用程序,這意味着我不能只訪問驅動器。我需要一種方法來列出硬盤上的所有分區並寫入/格式化它們。列出磁盤上的所有分區
4
A
回答
7
要列出磁盤分區,您可以使用WMI。
var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskPartition");
foreach (var queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_DiskPartition instance");
Console.WriteLine("Name:{0}", (string)queryObj["Name"]);
Console.WriteLine("Index:{0}", (uint)queryObj["Index"]);
Console.WriteLine("DiskIndex:{0}", (uint)queryObj["DiskIndex"]);
Console.WriteLine("BootPartition:{0}", (bool)queryObj["BootPartition"]);
}
+3
嗨我怎樣才能從這個類獲得分區標題(C,D,E,...)? – user3290286
0
您可以使用以下方法獲取裝入磁盤分區的卷或DriveLetter。
- Win32_LogicalDiskToPartition
- Win32_DiskDrive
從Win32_DiskDrive
類,你可以通過查詢產權Index
或Name
屬性提取DriveNumber
得到了DriveNumber
。然後從Win32_LogicalDiskToPartition
查詢Antecedent
和Dependent
。在Antecedent
值中,您將獲得磁盤號和其嘗試映射卷的分區,然後從Dependent
屬性中提取DriveLetter
,如「C:」,「D:」等。所以通過使用這個邏輯,你可以將LogicalDrives
安裝在特定的HardDisk
上。 我在我的組件中使用這個邏輯來爲我的系統上的特定硬盤驅動器獲取LogicalDrive
名稱(「C:」,「D:」等)。
相關問題
- 1. 列出C#中的所有磁盤分區
- 2. 磁盤分區
- 3. 分區表,我的硬盤上的不同磁盤上的每個分區
- 4. 如何僅使用Get-PSDrive列出有效安裝的磁盤分區?
- 5. 磁盤io隊列溢出
- 6. Mac分析自由扇區磁盤
- 7. Linux發現磁盤和分區
- 8. 從磁盤分區打印文件名
- 9. 在分區磁盤的bash腳本中出現錯誤
- 10. 在LynxOS上格式化磁盤並在C上創建分區
- 11. 甲骨文 - 錯誤的交換磁盤分區列表 - 範圍分區
- 12. 我如何使用PHPseclib總和(每個分區的)所有磁盤大小
- 13. 使用diskpart獲取磁盤上的空閒空間(未分區)
- 14. Ubuntu無法更改Windows分區磁盤上的權限
- 15. 關於FreeBSD磁盤分區/分區命名
- 16. 獲取其中所有硬盤和分區的序列號
- 17. Java溢出到磁盤的FIFO隊列
- 18. 用Perl腳本重新加載磁盤分區列表
- 19. 託管磁盤和非託管磁盤之間的區別
- 20. 週期中的所有磁盤陣列的鍵
- 21. JVM是否攔截磁盤事務/有其自己的磁盤緩衝區?
- 22. numpy磁盤陣列上的大號
- 23. Mac OSX上的磁盤隊列長度
- 24. 獲取磁盤上的文件的所有者
- 25. 保存與列表列的磁盤到磁盤
- 26. Tenant ID上的每個表上的SQL Server分區 - 使用的磁盤空間
- 27. 列出除DVD驅動器以外的所有磁盤,而不使用DriveInfo.GetDrives
- 28. Websphere MQ - 隊列中所有消息佔用的磁盤空間?
- 29. 區分鍵盤上的鍵盤
- 30. Tomcat AccessLogValve永久保存磁盤上的所有文件?
無法訪問驅動器不會讓您遠遠超過它的照片。 –
@HansPassant我認爲他的意思是'C:drive'和'D:drive'的驅動器,而不是'硬盤驅動器'。 – robertc
@CommunistPancake請提出問題,改進並粘貼一些代碼。 – kenorb