繁体   English   中英

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

[英]how to obtain physical drives in Windows

我正在用kernel32 dll的包装程序在Python中进行编程,因此我可以使用该dll的任何功能,例如GetLogicalDrives()。 我正在尝试获取物理驱动器的信息, 即使未安装它们也是如此 我已经看到类似的问题,但是我需要未安装的驱动器的信息。 我见过的所有方法都需要设备中的目录或文件,但是如果未挂载,则无法安装,因此问题是:

有没有一种方法可以为我提供系统中物理驱动器的列表,即使未安装它们也可以?

我不得不说,使用Windows注册表,我已经在“ HKEY_LOCAL_MACHINE \\ Hardware \\ Devicemap \\ Scsi \\ Scsi Port x ”中获得了物理驱动器的数量,因为在此注册表项中,您可以看到驱动器的数量,包括cd -rom设备或软盘设备。 但是我还需要未安装设备的大小,所以...

使用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驱动器)无可用信息。 我认为您无法获取未安装的可移动媒体的大小信息。

FindFirstVolume和FindNextVolume 可能是您所需要的。

MSDN FindFirstVolume页面

有一个示例搜索卷并列出每个卷的所有路径,乍一看,似乎允许某些卷不存在这样的路径。 也就是说,我从未使用过。

您也可以尝试使用适用于Python的win32模块。

Win32_DiskDrive wmi类怎么样?

c = wmi.WMI()

dd = c.Win32_DiskDrive()[0]

print.dd

有关msdn上的 Win32_DiskDrive的更多信息

http://msdn.microsoft.com/en-us/library/aa365730(VS.85).aspx

GetLogicalDrives()GetLogicalDriveStrings()

看起来像你想要的。 但是它们工作的是A:,B:C:等,而不是\\?\\ HardDisk或其他任何东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM