如何在Windows中获取物理驱动器
我正在用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 可能是你需要的东西。
这里有一个例子,它可以搜索磁盘卷并列出每个卷的所有路径。乍一看,它似乎允许某些卷没有路径。不过,我自己从来没有用过这个。