delphi – 如何快速清零文件内容?

前端之家收集整理的这篇文章主要介绍了delphi – 如何快速清零文件内容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想终止用户从我的程序中选择的文件.我写了这个示例代码
var
  aFile: TFileStream;
Const
  FileAddr: String = 'H:\Akon.mp3';
  Buf: Byte = 0;
begin
  if FileExists(FileAddr) then
  begin
    // Open given file in file stream & rewrite it
    aFile:= TFileStream.Create(FileAddr,fmOpenReadWrite);
    try
      aFile.Seek(0,soFromBeginning);
      while aFile.Position <> aFile.Size do
        aFile.Write(Buf,1);
    finally
      aFile.Free;
      ShowMessage('Finish');
    end;
  end;
end;

如您所见,我用0(null)值覆盖给定文件.此代码可以正常工作,但在大文件中速度非常低.我想在多线程代码中执行此过程,但我尝试了一些测试代码而无法执行此操作.例如,我创建了4个执行此操作的线程来加速此过程.

有没有办法加快这个过程?

解决方法

我不知道它是否可以帮助你,但我认为你可以做得更好(比多线程)写入更大的缓冲区. 例如,您可以初始化16k宽的缓冲区并直接写入FileStream;你只需要检查文件的最后一部分,你只为其写入完整缓冲区的一部分. 相信我,它会更快……

猜你在找的Delphi相关文章