![](/img/trans.png)
[英]Delphi IdFTP - get file listing encoded in specified ANSI code page
[英]FTP Downloads corrupted file in Delphi using IdFTP
我正在使用IdFTP
從 FTP 服務器下載.exe
或.zip
文件。 該文件已下載並從 FTP 到達我的計算機,問題是.exe
在傳輸過程中損壞,我無法在我的計算機中打開它。
這是代碼。
IdFTP1.Connect;
IdFTP1.Get(EdtRemoteFile.Text,EdtDirectory.Text + '\' + EdtRemoteFile.Text, True, true);
默認情況下,FTP 協議以 ASCII(文本)模式運行。 在這種模式下,換行符在傳輸過程中被規范化,這會破壞二進制文件(它也可能破壞非 ASCII 文本文件,如 UTF-8)。 因此,在傳輸非文本文件時,您需要切換到 IMAGE(二進制)模式,例如:
uses
..., IdFTPCommon;
IdFTP1.Connect;
IdFTP1.TransferType := ftBinary; // <-- ADD THIS
IdFTP1.Get(EdtRemoteFile.Text,EdtDirectory.Text + '\' + EdtRemoteFile.Text, True, true);
.txt
文件可以工作,問題在於.exe
和.zip
文件。 您需要將此行添加到您的代碼中:
uses
..., IdFTPCommon;
IdFTP1.TransferType := ftBinary;
不要忘記導入IdFTPCommon
否則你不能使用ftBinary
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.