Как программно отформатировать нераспределенное пространство? - PullRequest
0 голосов
/ 29 апреля 2009

Я ищу фрагмент кода, который бы программно форматировал нераспределенное пространство на данном диске.

В идеале я ищу .net код (VB.NET C #) или C ++.

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 29 апреля 2009

Лучше всего использовать WMI. В частности, вы захотите изучить метод Format класса Win32_Volume.

Вместо этого вы можете использовать SHFormatDrive функцию Win32 API. Это может быть более простой вариант (особенно в C ++), хотя я не уверен, как функциональность сравнивается с методом WMI. Редактировать: Как указывает М. Джахедбозорган, похоже, что это открывает диалог оболочки Explorer для форматирования диска.

Третий вариант - запустить командную строку format.exe из кода (и затем прочитать из потока stdout), но это явно не очень хорошее решение.

Другие предложения приведены в этой теме на форумах MSDN.

1 голос
/ 29 апреля 2009

Создайте файл, который заполняет весь диск, затем запишите на него случайные данные, затем очистите его, затем закройте.

Первый шаг, вероятно, труднее всего выполнить надежно в нескольких конфигурациях (например, сжатые тома NTFS или квоты на пользователя).

Или используйте «cipher / w» из командной строки.

0 голосов
/ 29 апреля 2009

Похоже, что Windows предоставляет метод только для форматирования всего тома, а не только нераспределенного пространства.

Итак, если я правильно понял ваш вопрос, вы можете создать раздел на оставшемся месте диска, а затем отформатировать этот новый раздел.

Вы захотите использовать PInvoke и Win32_Volume из WMI.

...