Indy FTP TransferType

Tih*_*uan 2 delphi ftp indy

我正在使用IdFTP(Indy 10)组件从远程位置下载一些文件(zip和txt).在获取每个文件之前,我将TransferType设置为二进制.

IdFTP.TransferType := ftBinary;
IdFTP.Get(ASource, ADest, AOverwrite);
Run Code Online (Sandbox Code Playgroud)

我希望可以使用二进制模式下载文本和二进制文件.但是,正确下载zip文件时,看起来文本文件内容会混乱.如果我将TransferType设置为ASCII文本文件,它将按预期工作.如何检测为给定文件设置的TransferType?有共同点或自动设置吗?

PA.*_*PA. 6

我没有看到二进制标志如何弄乱传输的文件.二进制类型意味着服务器传输文件而不进行任何处理.

FTP服务器唯一应该使用ASCII标志的是,正确处理文本文件中的行尾,通常是(1)Unix中的换行或(2)Windows中的回车+换行.但是现在大多数文本编辑器都处理这两种系统.

所以最安全的是对于非常知名的文本文件只使用ASCII标志,可能只有扩展名为.txt的文件,并且对所有其他文件使用二进制标志.

  • +1.是的 - 许多FTP程序在自动模式下以文件扩展名为基础. (2认同)