我一直在编写列出磁盘所有分区的代码,并且发现了一个问题。 WMI的Win32_DiskDrive
属性Partitions
告诉我,一个测试磁盘有5个分区,但我只能列出其中的4个(最后两个分区显示为只有一个)。最后两个分区是主要的,但其中一个是SWAP分区,另一个是Linux分区。列出C#中的所有磁盘分区
回答
我相信你想要的是string[] System.IO.Directory.GetLogicalDrives()
。
你所得到使用GetLogicalDrives
每个string
,你可以创建一个System.IO.DriveInfo
对象,这将提供各种信息有关的逻辑驱动器。
DriveInfo.GetDrives()
可能是上述两个步骤的捷径。尽管如此,我还不完全确定,而且文件不是很清楚。
我会尝试使用'string [] System.IO.Directory.GetLogicalDrives()',我会告诉我的经验 –
此代码返回相同的,只有3个驱动器,与Windows在我的电脑中显示的驱动器相同窗口... –
我想这应该做的伎俩:
/// <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;
}
如果你真的想,你可以用'yield return'替换'drives.Add'并返回一个'IEnumerable'。就像建议一样。 – gunr2171
我试过了,但是这个代码只返回3个驱动器,并且Windows磁盘管理显示5 ... –
是的,这是真的,也许更优雅:) –
- 1. 列出磁盘上的所有分区
- 2. 磁盘分区
- 3. 如何仅使用Get-PSDrive列出有效安装的磁盘分区?
- 4. 在分区磁盘的bash脚本中出现错误
- 5. 如何查找在C#中保存给定分区的磁盘?
- 6. 磁盘io队列溢出
- 7. 获取其中所有硬盘和分区的序列号
- 8. 分区表,我的硬盘上的不同磁盘上的每个分区
- 9. Mac分析自由扇区磁盘
- 10. Linux发现磁盘和分区
- 11. 从磁盘分区打印文件名
- 12. 周期中的所有磁盘阵列的键
- 13. 甲骨文 - 错误的交换磁盘分区列表 - 范围分区
- 14. 磁盘扇区读取目标c
- 15. 我如何使用PHPseclib总和(每个分区的)所有磁盘大小
- 16. 在C中列出其驱动程序的磁盘驱动器#
- 17. Websphere MQ - 队列中所有消息占用的磁盘空间?
- 18. 关于FreeBSD磁盘分区/分区命名
- 19. 在LynxOS上格式化磁盘并在C上创建分区
- 20. Java溢出到磁盘的FIFO队列
- 21. 用Perl脚本重新加载磁盘分区列表
- 22. 托管磁盘和非托管磁盘之间的区别
- 23. JVM是否拦截磁盘事务/有其自己的磁盘缓冲区?
- 24. 填入一个EXT4分区的磁盘中的脚本
- 25. 列出文件中的所有#区域
- 26. 保存与列表列的磁盘到磁盘
- 27. 列出除DVD驱动器以外的所有磁盘,而不使用DriveInfo.GetDrives
- 28. 如何在.NET中获得磁盘的分区UUID
- 29. RabbitMQ溢出队列到磁盘
- 30. 如何使用java列出gephi中所有分区的节点?
我们可以看到代码,你试过? – gunr2171
@KenWhite,我只会同意,如果OP实际上想要使用WMI的方法,而不是蒂姆的答案。 – gunr2171
我试过这个代码 'code'var搜索=新ManagementObjectSearcher( “SELECT * FROM Win32_DiskPartition);
的foreach(在searcher.Get()VAR queryObj)
{
Console.WriteLine(” --- --------------------------------“);
Console.WriteLine(”Win32_DiskPartition instance“);
Console .WriteLine(“Name:{0}”,(string)queryObj [“Name”]);
Console.WriteLine(“Index:{0}”,(uint)queryObj [“Index”]);
Console .WriteLine(“DeviceID:{0}”,(string)queryObj [“DeviceID”]);
}' –