如何在Windows中获取物理驱动器

2 投票
4 回答
6213 浏览
提问于 2025-04-15 14:42

我正在用Python编程,并且使用了kernel32这个dll的封装,这样我就可以使用这个dll里的任何功能,比如GetLogicalDrives()。我想获取物理硬盘的信息,即使它们没有被挂载。我看到过类似的问题,但我需要的是那些没有被挂载的硬盘的信息。我见过的所有方法都需要设备里的目录或文件,但如果硬盘没有被挂载,我就无法获取这些信息。所以我的问题是:

有没有什么方法可以让我获取系统中所有物理硬盘的列表,即使它们没有被挂载?

我必须说,通过使用Windows注册表,我在"HKEY_LOCAL_MACHINE\Hardware\Devicemap\Scsi\Scsi Port x"中找到了物理硬盘的数量,因为在这个键里,你可以看到硬盘的数量,包括光驱或软驱。但我还需要那些没有挂载的设备的大小,所以……

4 个回答

1

你也可以试试Python的win32模块。

3

可以使用Tim Golden的wmi模块。这里有一个使用手册的链接:

import wmi

w = wmi.WMI()
for drive in w.Win32_LogicalDisk():
    print drive.Caption, drive.Size, drive.FreeSpace

这个代码会输出一些信息

C: 99928924160 14214135808
D: None None
E: 499983122432 3380903936
S: 737329123328 362274299904
T: 737329123328 9654988800

不过,要注意的是,我的D盘(DVD驱动器,未挂载)没有任何信息。我觉得对于未挂载的可移动媒体,无法获取大小信息。

1

FindFirstVolume 和 FindNextVolume 可能是你需要的东西。

MSDN FindFirstVolume 页面

这里有一个例子,它可以搜索磁盘卷并列出每个卷的所有路径。乍一看,它似乎允许某些卷没有路径。不过,我自己从来没有用过这个。

撰写回答