0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 3
1

Файловый Шредер на C#

27.04.2011, 12:43. Показов 1930. Ответов 4
Метки нет (Все метки)

Доброго всем дня!

Возникла насущная потребность встроить в приложение файловый шредер. Сделать это проблем не составляет, но возникло одно НО. Как я понял, в NTFS запрящена прямая запись на диск без размонтирования тома, и писать в файл можно только посредством функций, пишущих на диск через драйвер NTFS. А этот драйвер в угоду снижения фрагментации диска при сохранении файла пишет его не на то же место, где он был, а куда ему захочется.

Тоесть, суть проблемы. Открываю поток, перезаписываю файл мусором, закрываю поток. Переименовываю файл, обнуляю размер. Программы типа O&O Unerase видят удаленный файл, восстанавливают его, там каша. Казалось бы, все ок. Но оказывается, что это копия(!) файла, а оригинальный файл обнаруживается и спокойно восстанавливается при посекторном сканировании HDD прогами типа R-Studio и его содержимое более чем доступно.

Вопрос, как решить проблему на С# ? Возможно каким - то образом запретить системе переносить файл на новое место? Насколько я знаю, на диске есть области, которые не перемещаются при дефрагментации (помимо MFT), может можно на время "закрепить" файл на диске?

Заранее спасибо за советы!

Добавлено через 43 минуты
Неужели никто не сталкивался с такой проблемой?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2011, 12:43
Ответы с готовыми решениями:

Файл-шредер
Здравствуйте, нужен хороший файл-шредер, с возможностью не только удаление файлов, но с...

Шредер файла
Привет всем! Хочу написать для себя надежный шредер файлов, но не знаю как реализовать. На ум...

шредер от акрониса и hdd
младший брат решил переставить систему на ноутбучном винте и не придумал ничего интереснее как при...

Файловый IO
Я так понимаю в ходе работы программы должен создаваться файл, а в него записываться текст. Но где...

4
Неадекват
1478 / 1218 / 244
Регистрация: 02.04.2010
Сообщений: 2,772
27.04.2011, 13:26 2
Единственное что приходит в голову хранить файл на диске только в зашифрованном виде, при работе дешифровать и хранить непосредственно в RAM.
0
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 3
27.04.2011, 13:55  [ТС] 3
Так и делаем, но в ряде случаев нужно именно удалять файлы. Можете что - то посоветовать относительно удаления (перезаписывания мусором) файлов на низком уровне, покластерно? Можно на с++, я так понял, на шарпе такое не сделать, либо мучаться с интеропом. Наверное, проще будет на плюсах библиотеку написать?
0
Неадекват
1478 / 1218 / 244
Регистрация: 02.04.2010
Сообщений: 2,772
27.04.2011, 14:47 4
Цитата Сообщение от mr_mag Посмотреть сообщение
Наверное, проще будет на плюсах библиотеку написать?
Нифига это не проще... Чтобы получить прямой доступ к диску придется писать свой драйвер. Я бы 100500 раз подумал, а стоит ли оно того? Ошибки на этом уровне, как правило, обходятся очень дорого.
0
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 3
28.04.2011, 09:08  [ТС] 5
Ок, спасибо, буду думать...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2011, 09:08
Помогаю со студенческими работами здесь

Файловый менеджер с БД
Здраствуйте! Вопрос к тем, кто смог бы Аргументированно объяснить свою точку зрения по поводу...

Файловый менеджер
Я в Тупике! помогите пожалуйста, но буду благодарен вдвойне если объясните и код. Взываю...

Файловый сервер
Всем привет! Посоветуйте конфигурацию для сервера. Использоваться будет только как файлсервер....

файловый менеджер
Доброго вечера всем кто читает срочно возникла необходимость в написании файлового менеджера на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru