Вопрос:
Я пытаюсь сделать программу Python 3.3 для форматирования диска в Windows, такого как SD-карта или USB-Stick. Я попробовал код здесь: 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 Лучший ответ:
Я нашел решение! Эта строка:
FMIFS_HARDDISK = 0x0C
должно быть так
FMIFS_UNKNOWN = 0
Это просто делает его формат Неизвестным!
Ответ №1
Я долго и долго смотрел документацию на вызовы Windows, я не мог найти что-либо в Microsoft, которое соответствовало тому, как здесь вызывается FormatEx.
Наконец, я нашел это: http://doxygen.reactos.org/df/d85/fmifs_8h_source.html
Здесь вы можете найти, как установить размер кластера, например.