我正在尝试制作一个Python 3.3程序来格式化Windows中的驱动器,例如SD卡或USB记忆棒。我在这里尝试了代码:http://bytes.com/topic/python/answers/537724-formatting-device-script-windows。起初它给了我一个错误,但经过一些调整后它没有。它运行但我的USB驱动器没有任何反应。这是我正在使用的代码。 (这是使用ctypes模块btw)请帮忙!
def myFmtCallback(command, modifier, arg):
print(command)
return 1 # TRUE
def format_drive(Drive, Format, Title):
fm = windll.LoadLibrary('fmifs.dll')
FMT_CB_FUNC = WINFUNCTYPE(c_int, c_int, c_int, c_void_p)
FMIFS_HARDDISK = 0x0C
fm.FormatEx(c_wchar_p(Drive), FMIFS_HARDDISK, c_wchar_p(Format),
c_wchar_p(Title), True, c_int(0), FMT_CB_FUNC(myFmtCallback))
我相应地调用了函数:
format_drive('F:\\', 'NTFS', 'USBDrive')
程序打印出来:
>>>
9
11
答案 0 :(得分:1)
我找到了解决方案!这一行:
FMIFS_HARDDISK = 0x0C
应该是这样的
FMIFS_UNKNOWN = 0
只是简单地按照未知格式进行格式化!
答案 1 :(得分:0)
我对Windows调用的文档看起来很长很难,我在Microsoft上找不到与此处调用FormatEx的方式相匹配的任何内容。
最后我发现了这个:http://doxygen.reactos.org/df/d85/fmifs_8h_source.html
您可以在此处找到如何设置群集大小的示例。