Нет, кэширование отсутствует, так как в общем случае в протоколе FTP такого нет.TIdFTP
имеет дело только с живыми данными.
Возможно, вы загружаете двоичные файлы в режиме ASCII?Если так, это изменило бы символы разрыва строки (CR и LF) во время передачи.Это распространенная ошибка, поскольку ASCII является режимом FTP по умолчанию.Убедитесь, что вы устанавливаете свойство TIdFTP.TransferType
по мере необходимости, прежде чем передавать файл.Режим ASCII следует использовать только для текстовых файлов, если он вообще используется.
И FWIW, вам может не понадобиться загружать файл для проверки его байтов.Если сервер поддерживает какие-либо команды X<Hash>
(где Hash
может быть SHA512
, SHA256
, SHA1
, MD5
или CRC
), TIdFTP
имеет методы VerifyFile()
для их использования.Это вычисляет хэш локального файла, а затем сравнивает его с хешем, вычисленным сервером для удаленного файла.Передача файловых данных не требуется.