我正在使用IdFTP(Indy 10)组件从远程位置下载一些文件(zip和txt).在获取每个文件之前,我将TransferType设置为二进制.
IdFTP.TransferType := ftBinary;
IdFTP.Get(ASource, ADest, AOverwrite);
Run Code Online (Sandbox Code Playgroud)
我希望可以使用二进制模式下载文本和二进制文件.但是,正确下载zip文件时,看起来文本文件内容会混乱.如果我将TransferType设置为ASCII文本文件,它将按预期工作.如何检测为给定文件设置的TransferType?有共同点或自动设置吗?
我没有看到二进制标志如何弄乱传输的文件.二进制类型意味着服务器传输文件而不进行任何处理.
FTP服务器唯一应该使用ASCII标志的是,正确处理文本文件中的行尾,通常是(1)Unix中的换行或(2)Windows中的回车+换行.但是现在大多数文本编辑器都处理这两种系统.
所以最安全的是对于非常知名的文本文件只使用ASCII标志,可能只有扩展名为.txt的文件,并且对所有其他文件使用二进制标志.