请问如何实现打开一个文件,然后把内容全部填充为0?

解决方案 »

  1.   


    function FillZeroFile(IFileName:string):Boolean;
    var
      FS:TFileStream;
      Chr:Char;
      Size:Int64;
    begin
      Result := True;
      try
        FS:=TFileStream.Create(IFileName,fmOpenReadWrite);
        Chr:= #0;
        Size := FS.Size;
        FS.Free;
        DeleteFile(IFileName);
        FS:=TFileStream.Create(IFileName,fmCreate);
        while FS.Position < Size do begin
          FS.Write(Chr,SizeOf(Chr));
        end;
        FS.Free;
      except
        Result := False;
      end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       FillZeroFile('H:\test.exe')
    end;
      

  2.   

    二楼的代码就可以实现你要的功能啊。其实如果是你要避免恢复的话,无论填充什么字符都可以的。你想要填充什么把程序里如下红色部分修改为你要的字符的ASC码就可以了。    FS:=TFileStream.Create(IFileName,fmOpenReadWrite);
        Chr:= #0;
        Size := FS.Size;