Как удалить с жёсткого диска всю информацию?
От: Владислав Россия  
Дата: 18.01.02 14:48
Оценка:
Привет всем.

У меня такой вопрос:
имеется hard disk(далее hd) подключённый к порту USB (FAT32), операционная система Windows XP. Мне надо программно удалить с hd всю информацию (папки, файлы). Пользуясь простейшим алгоритмом объход дерева в глубину и функциями FindNextFile, RemoveDirectory, DeleteFile, я всё удаляю. При этом система создаёт папку System Volume Information в которую помещает LOG файл. Эту папку удалить не возможно т.к. система пишет, что она используется другим процессом (так продолжается до перезапуска компьютера). Как от этого избавится (от этой папки) или как хотя — бы узнать каким процессом она 'юзается'?
Suum cuique (лат.)
Re: Как удалить с жёсткого диска всю информацию?
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 18.01.02 14:49
Оценка:
Здравствуйте Владислав, Вы писали:


В>Привет всем.


В>У меня такой вопрос:

В>имеется hard disk(далее hd) подключённый к порту USB (FAT32), операционная система Windows XP. Мне надо программно удалить с hd всю информацию (папки, файлы). Пользуясь простейшим алгоритмом объход дерева в глубину и функциями FindNextFile, RemoveDirectory, DeleteFile, я всё удаляю. При этом система создаёт папку System Volume Information в которую помещает LOG файл. Эту папку удалить не возможно т.к. система пишет, что она используется другим процессом (так продолжается до перезапуска компьютера). Как от этого избавится (от этой папки) или как хотя — бы узнать каким процессом она 'юзается'?

а это не поможет — http://codeguru.earthweb.com/files/ForceDel.shtml ?
Re[2]: Как удалить с жёсткого диска всю информацию?
От: Владислав Россия  
Дата: 18.01.02 15:02
Оценка:
Здравствуйте Odi$$ey, Вы писали:

O$>а это не поможет — http://codeguru.earthweb.com/files/ForceDel.shtml ?

Я боюсь, что это замкнутый круг т.к. думаю, что при любом удалении с 'винта' появляется эта папка (даже при удалении её самой), но я попробую.
Suum cuique (лат.)
Re: Как удалить с жёсткого диска всю информацию?
От: Lexey Россия  
Дата: 18.01.02 15:06
Оценка:
Здравствуйте Владислав, Вы писали:


В>Привет всем.


В>У меня такой вопрос:

В>имеется hard disk(далее hd) подключённый к порту USB (FAT32), операционная система Windows XP. Мне надо программно удалить с hd всю информацию (папки, файлы). Пользуясь простейшим алгоритмом объход дерева в глубину и функциями FindNextFile, RemoveDirectory, DeleteFile, я всё удаляю. При этом система создаёт папку System Volume Information в которую помещает LOG файл. Эту папку удалить не возможно т.к. система пишет, что она используется другим процессом (так продолжается до перезапуска компьютера). Как от этого избавится (от этой папки) или как хотя — бы узнать каким процессом она 'юзается'?

Открывай диск на уровне Volume:

char dev[]="\\\\.\\X:";
HANDLE hVol=CreateFile(dev,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_WRITE_THROUGH|FILE_FLAG_NO_BUFFERING,NULL);


И грохай его вместе с MFT и всем остальным (естественно, он не должен быть системным).
Re: Как удалить с жёсткого диска всю информацию?
От: z_yura  
Дата: 18.01.02 21:20
Оценка:
Здравствуйте Владислав, Вы писали:

В>... система создаёт папку System Volume Information... Эту папку удалить не возможно...


Я обычно от таких приколов избавляюсь так:
до операции приводящей к созданию системой подобных гадостей я создаю на ее месте пустой файл и именем этой гадости... Ну и система обычно обламывается когда пытается создать папку с именем уже существующего файла.
Re: Как удалить с жёсткого диска всю информацию?
От: asfdasfd США http://geocities.com/dprpg
Дата: 21.01.02 04:05
Оценка:
Здравствуйте Владислав, Вы писали:


В>Привет всем.


В>У меня такой вопрос:

В>имеется hard disk(далее hd) подключённый к порту USB (FAT32), операционная система Windows XP. Мне надо программно удалить с hd всю информацию (папки, файлы). Пользуясь простейшим алгоритмом объход дерева в глубину и функциями FindNextFile, RemoveDirectory, DeleteFile, я всё удаляю. При этом система создаёт папку System Volume Information в которую помещает LOG файл. Эту папку удалить не возможно т.к. система пишет, что она используется другим процессом (так продолжается до перезапуска компьютера). Как от этого избавится (от этой папки) или как хотя — бы узнать каким процессом она 'юзается'?



ShellExecute ("format C:")
"Do we need us?"
<A HREF="http://geocities.com/dprpg">Ionware Productions — Game and Demo Development."</A>
Re[2]: Как удалить с жёсткого диска всю информацию?
От: Владислав Россия  
Дата: 21.01.02 09:39
Оценка:
A>ShellExecute ("format C:")

Это о-о-очень не плохая идея , однако диск у меня ёмкостью 40Гб(!!!) и 'форматится' он будет долго .
Suum cuique (лат.)
Re: Как удалить с жёсткого диска всю информацию?
От: Владислав Россия  
Дата: 21.01.02 11:40
Оценка:
В>Привет всем.

В>У меня такой вопрос:

В>имеется hard disk(далее hd) подключённый к порту USB (FAT32), операционная система Windows XP. Мне надо программно удалить с hd всю информацию (папки, файлы). Пользуясь простейшим алгоритмом объход дерева в глубину и функциями FindNextFile, RemoveDirectory, DeleteFile, я всё удаляю. При этом система создаёт папку System Volume Information в которую помещает LOG файл. Эту папку удалить не возможно т.к. система пишет, что она используется другим процессом (так продолжается до перезапуска компьютера). Как от этого избавится (от этой папки) или как хотя — бы узнать каким процессом она 'юзается'?

На самом деле проблема состоит в том, что нужно создать на диске в корневой директории набор файлов размером по 4Гб каждый, таким образом, чтобы использовать всё(!) место на диске. Если создавать файлы на пустом диске один за одним то каждый файл занимает кластера, которые располагаются друг за другом на диске (проверено методом 'научного тыка' :) ). Эта задача разбивается на два этапа:
1. Уничтожить 'инфо' с диска.
2. Создать файлы.

И в первом и во втором случае появляется папка System Volume Information\_restore{F2DBC9FE-33D3-4302-A57F-8773D65F214E}\RP17\change.log (по минимому). Если в первом пункте можно воспользоваться quick format, то по второму пункту я просто не знаю что делать. К сожалению не один из вариантов не подходит т.к.
1. http://codeguru.earthweb.com/files/ForceDel.shtml — код не 'убивает' log файл (не может снять процесс).
2. При открытии диска на уровне Volume то же неудача (т.к. он log файл используется процессом).
3. Можно создать папку System Volume Information\... пока её ещё нет и удерживать своим процессом, а потом 'затереть', не пробовал, попробую обязательно но не верю, что сработает (Windows хитрая система :) ).

Спасибо всем за ответы, если есть какие — нибудь идеи пишите...
Suum cuique (лат.)
Re[2]: Как удалить с жёсткого диска всю информацию?
От: Yuriyzapros Украина  
Дата: 22.01.02 10:09
Оценка:
Здравствуйте Владислав, Вы писали:


В>Спасибо всем за ответы, если есть какие — нибудь идеи пишите...


Всем привет.
С интересом прочитал вашу дискуссию о фамильярном обращении с жестким диском. Возможно, подскажете решение моей более простой задачи- как просто получить информацию о жестком диске, а именно: размер (size), интерфейс (IDE) и количество разделов (partitions)?
Re[3]: Как удалить с жёсткого диска всю информацию?
От: Владислав Россия  
Дата: 22.01.02 10:14
Оценка:
Здравствуйте Yuriyzapros, Вы писали:

Y>Всем привет.

Y>С интересом прочитал вашу дискуссию о фамильярном обращении с жестким диском. Возможно, подскажете решение моей более простой задачи- как просто получить информацию о жестком диске, а именно: размер (size), интерфейс (IDE) и количество разделов (partitions)?

Посмотри в MSDN'е функцию GetVolumeInformation, а так — же соответствующую группу.
Suum cuique (лат.)
Re[4]: Как удалить с жёсткого диска всю информацию?
От: Yuriyzapros Украина  
Дата: 22.01.02 12:23
Оценка:
Здравствуйте Владислав, Вы писали:

В>Здравствуйте Yuriyzapros, Вы писали:


Y>>Всем привет.

Y>>С интересом прочитал вашу дискуссию о фамильярном обращении с жестким диском. Возможно, подскажете решение моей более простой задачи- как просто получить информацию о жестком диске, а именно: размер (size), интерфейс (IDE) и количество разделов (partitions)?

В>Посмотри в MSDN'е функцию GetVolumeInformation, а так — же соответствующую группу.

Cпасибо, но, по-видимому, это скорее относится к логическим дискам,
Re: Как удалить с жёсткого диска всю информацию?
От: Slayer Россия  
Дата: 23.01.02 04:53
Оценка:
Здравствуйте Владислав, Вы писали:


Еще одна вариация :
ShellExecute ("format C: /q")

По идее должно быть очень быстро.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.