Безопасное стирание файлов в Compact Framework - PullRequest
3 голосов
/ 18 июля 2010

Учитывая путь строки, я хочу стереть содержимое файла.Естественный способ, которым я думал (который может быть неправильным), состоял в том, чтобы открыть FileStream к файлу и записать бред (случайные данные, возможно, взятые из RNGCryptoServiceProvider) к нему.А затем, возможно, сделать это несколько раз, а затем удалить файл.

Моя проблема в том, что, хотя это может выглядеть логически правильным, я прочитал в другом блоге, что Windows может на самом деле выбрать запись файла в другое место на жестком диске.

Так ли это в Windows Mobile?Будет ли это на самом деле проблемой?Относится ли эта запись в другое место на жестком диске даже к флэш-картам (SD и т. Д.)?

1 Ответ

1 голос
/ 19 января 2011

Я лично этого не делал, но вам, вероятно, понадобится использовать IOCTL низкоуровневого FLASH-драйвера, чтобы сделать это правильно.

http://msdn.microsoft.com/en-us/library/aa927166.aspx

Я думаю IOCTL_FMD_RAW_WRITE_BLOCKS выглядит особенно полезным.

-PaulH


Еще одна возможность, которая может сработать, заключается в обычном удалении файла, а затем использовании API-интерфейса дефрагментации, чтобы стереть ВСЕ свободное пространствотвоя вспышкаПоскольку вы все стираете, вам не нужно будет точно знать, где на диске находился ваш файл.Но это изменит вашу флешку быстрее.Метод C # подробно описан в этом сообщении: http://blogs.msdn.com/b/jeffrey_wall/archive/2004/09/13/229137.aspx

...