Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Файловая система \ Файлы \ Удалить файл навсегда

Удалить файл навсегда

{ 
  If you want to get rid of a file normally you just delete it. 
  But someone else can undelete it if the file hasn't been wiped correctly. 
  For security purposes, to insure that certain files are permanently 
  gone, the WipeFile procedure writes over the data in the file with 
  random characters and then erases it. 

  Wenn man eine Datei nicht mehr braucht, loscht man sie einfach. 
  Aber jemand anders kann die Datei wieder herstellen, wenn sie 
  nicht "richtig" geloscht wurde. 
  Aus Sicherheitsgrunden, um sicherzustellen, dass eine Datei permanent 
  geloscht wird, uberschreibt die WipeFile Prozedur eine Datei mit 
  Zufalls-Zeichen und loscht sie anschliessend. 
}

 procedure WipeFile(FileName: string);
 var
   buffer: array [0..4095] of Byte;
   max, n: LongInt;
   i: Integer;
   fs: TFileStream;

   procedure RandomizeBuffer;
   var
     i: Integer;
   begin
     for i := Low(buffer) to High(buffer) do
       buffer[i] := Random(256);
   end;
 begin
   fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
   try
     for i := 1 to 3 do
     begin
       RandomizeBuffer;
       max := fs.Size;
       fs.Position := 0;
       while max > 0 do
       begin
         if max > SizeOf(buffer) then
           n := SizeOf(buffer)
         else
           n := max;
         fs.Write(Buffer, n);
         max := max - n;
       end;
       FlushFileBuffers(fs.Handle);
     end;
   finally
     fs.Free;
   end;
   Deletefile(FileName);
 end;

Название: Удалить файл навсегда
Дата публикации: 2004-06-15 (2756 Прочтено)

 
 

 

Page generation 0.035 seconds