我正在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