delphi – 如何快速清零文件内容?
发布时间:2020-12-15 04:22:40 所属栏目:大数据 来源:网络整理
导读:我想终止用户从我的程序中选择的文件.我写了这个示例代码: 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.
我想终止用户从我的程序中选择的文件.我写了这个示例代码:
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;你只需要检查文件的最后一部分,你只为其写入完整缓冲区的一部分. 相信我,它会更快……
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |