Форматирование флешки Fat32 в Windows

Как лучше всего отформатировать USB-накопитель (> 32 ГБ) с помощью Java в Windows?

Я попытался использовать функцию format:

Process p = Runtime.getRuntime().exec("CMD /C format f: /FS:FAT32 /Q /X /Y");

Но размер диска ограничен 32Gb. Мой USB-накопитель больше 100Gb.

Могу ли я сделать это с помощью JNI или я буду ограничен 32Gb?

Есть ли какая-нибудь библиотека для этого? Я нашел fat32-lib, но он не кажется надежным, и нет документации .

Спасибо


person Maxbester    schedule 10.12.2013    source источник


Ответы (3)


Попробуй это :

http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm

Это сторонний инструмент для форматирования дисков FAT32 за пределами 32 ГБ. Он имеет режимы командной строки и графического интерфейса.

Превышение ограничения в 32 ГБ для дисков FAT32 невозможно с помощью встроенной команды format в Windows.

person r3ap3r    schedule 10.12.2013
comment
@Maxbester: Java не предназначена для задач системного администрирования. - person Harry Johnston; 10.12.2013

Если вы продолжите использовать format, я не думаю, что вы сможете избежать ограничение в 32 ГБ, которое Microsoft налагает на FAT32 во всех операционных системах на базе WinNT (Win2K+):

FAT16 и FAT32 плохо масштабируются. По мере увеличения тома увеличивается и таблица размещения файлов, что резко увеличивает время, необходимое Windows 2000 для вычисления объема свободного места на загрузочном томе при перезапуске системы.

По этой причине вы не можете создать том FAT32 размером более 32 ГБ с помощью утилиты Format. Однако драйвер Fastfat для Windows 2000 позволяет монтировать и полностью поддерживать том FAT32 объемом более 32 ГБ.

Возможно, вы сможете обойти это ограничение, используя другую реализацию FAT32, но я не уверен, что она существует для Windows (я не нашел ни одной в гугле). Или вы можете использовать пред-WinNT Windows, такие как Windows 98 или Millenium Edition, но я не думаю, что это будет хорошей идеей.

person Valentin    schedule 10.12.2013

Попробуй это,

Process p = Runtime.getRuntime().exec("CMD /C format f: /FS:NTFS /Q /X /Y");

Это решит вашу проблему..NTFS

person sx3    schedule 12.09.2014
comment
Система, в которой я буду использовать этот USB-накопитель, не поддерживает NTFS. - person Maxbester; 17.04.2019
comment
Затем используйте процесс EXFAT p = Runtime.getRuntime().exec(CMD/C format f:/FS:EXFAT/Q/X/Y); - person sx3; 09.08.2019