【发布时间】:2021-04-08 19:17:42
【问题描述】:
我正在使用TIdFTP (Indy 10.6) 上传超过 1GB 的大文件。
当我想下载该文件时,我收到一条错误消息“内存不足”。
这是我的代码:
var
FTPfile: TMemoryStream;
begin
...
FTPFile := TMemoryStream.Create;
...
TRY
IdFTP1.Get ('Myfile.pdf', FTPfile, false);
FTPfile.Position := 0;
EXCEPT
On E: Exception do
ShowMessage (E.Message);
END;
我使用的是 32 位版本的 Windows。
有解决这个问题的方法吗?
【问题讨论】:
-
您正在将文件加载到内存中(您发现这是有限的),您可以通过使用 TFilestream 将文件加载到磁盘来轻松解决此问题。
-
感谢您的帮助。
-
另外,你应该去掉
try..except。即使没有此块,您也会收到一个带有异常的消息框。而这个块是有害的:它会让例程在异常之后继续,这可能会导致更多的问题。相反,使用try..finally来保护流对象。