SafeDel 文件安全删除器alpha

                          SafeDel 文件安全删除器

语言: Delphi 7.0

编写:Red_angelX On 2006.9.18

目的:熟悉Delphi,VB,Java,C++程序编写,方便找工作。以后用各种语言写程序而不只是C#!!

作用:安全的删除电脑数据文件,防止被类似EasyRecover,Recover My Data等文件恢复工具还原

原理:Windows系统中常规删除一个文件,系统并没有真正的删除文件,只是在硬盘上把文件标志为已搽除,数据仍然存在,这就使得刚删除的数据有恢复的可能性,本软件根据这个原理在删除文件之前,先用0填充文件,再用1填充文件,再循环若干次随机数填充,最后才是删除,使得文件即使能恢复也不能得到正确的数据。

实现:这里填充随机数为例子解释关键代码:

procedure TForm1.FillWithRand(filepath:string);

var

fs:TFileStream;  //文件流

fSize : integer;

iNum : integer;

iLeft : integer;

i : integer;

rand : integer;

fBuffer : Array of Byte;

begin

  try

     fs :=TFileStream.Create(filepath,fmOpenWrite or fmShareExclusive);

     fSize := fs.Size;

     iNum := fSize div 1024;         //1K一循环

     iLeft := fSize - iNum*1024;

     SetLength(fBuffer,1024); 

 

     fs.Position := 0;

     for i:=0 to iNum-1 do

     begin

         rand := Random(108);

         FillChar(fBuffer[0],1024,rand);

         fs.Seek(i*1024,soFromBeginning);

         fs.WriteBuffer(fBuffer[0],1024);

         //fs.Write(fBuffer[0],1024);

         application.ProcessMessages;  //防止当死

     end;

     if iLeft <> 0 then

     begin

         SetLength(fBuffer,iLeft);

         rand := Random(108);

         FillChar(fBuffer[0],iLeft,rand);

         fs.Seek(-iLeft,soFromEnd);

         fs.WriteBuffer(fBuffer[0],iLeft);

     end;

     fs.Free ;

     PrintResult('Fill File With Rand Finished.');

 

  except

     //PrintResult('Open File '+filepath+' For ReadWrite Failed ~');

  end;

end;



   注:思路很早就有人提过,我只是实现而已,不要说我抄袭,代码是自己实现的。

  程序最后界面如下:不过对于删除目录没有做,因为不知道怎么写浏览目录对话框……Delphi还是有点不方便。

  SafeDel 文件安全删除器alpha_第1张图片

程序DEMO下载地址:http://free5.ys168.com/?xuyuexyz  下的Delphi/SafeDel.exe

你可能感兴趣的:(windows,File,Integer,Random,语言,Delphi)