如果我只知道设备名是“\.\PhysicalDrive0”,但没有文件系统或卷标,如何从Windows的块设备或原始磁盘获取大小?在
我尝试了以下方法:
fd = os.open(r"\.\PhysicalDrive0", os.O_RDONLY)
os.lseek(fd, 0, os.SEEK_END)
它在Linux上运行良好,但在Windows上总是返回“OSError:[Errno 22]Invalid argument”。在
我也试过ctypes.windll.kernel32.GetDiskFreeSpaceExW(),但它似乎仅适用于具有文件系统和分配了卷标的磁盘。在
对于原始磁盘或块设备,正确的方法是什么?在
提前谢谢。在
我有个解决办法。。但不漂亮。使用diskpart。不幸的是,如果需要的话,它没有给您一个精确的字节大小,但是它提供了一个人类可读的字符串。在
使用^{} 模块
The disk has 320070320640 bytes
Or 298 GB
此代码在WMI接口中查询索引为
Win32_DiskDrive
的对象(这样只有一个结果,结果是PHYSICALDRIVE0
)。drive
对象有一个名为size
的属性,它是一个包含驱动器大小(以字节为单位)的字符串。在相关问题 更多 >
编程相关推荐