【发布时间】:2022-01-10 16:24:45
【问题描述】:
基本上,我正在使用TIdHTTP.Get() 将(可能很大的)文件检索到TFileStream 中;
filestream := TFileStream.Create(destination, fmCreate);
http.HandleRedirects := True;
try
http.Get(url, filestream);
except
on E: Exception do Memo.Lines.Add(E.Message);
end;
filestream.Free;
我的问题是当/如果用户在下载过程中关闭/杀死程序。该文件不是显示文件大小小于应有的大小,而是已完成下载的大小。这是为什么呢?
我使用文件大小作为快速检查以查看下载是否成功,因此具有正确的大小,但错误的内容会导致其他错误。我不想对每个文件进行哈希校验和,因为它们有很多,而且 MD5 检查需要一些较大的多 GB 大小的文件。
如果下载因任何原因中断,是否有办法使目标文件变小?除非所有下载都正常完成,否则有什么方法可以不将流扩展到完整大小?
【问题讨论】: