Вывод следующий: имеющееся в wininet.dll API не позволяет корректно послать подряд команды REST и RETR. Предложенный в архиве код будет работать только на некоторых серверах (я пробовал на ProFTPd - работает, на остальных - нет).
nesco, обрати внимание, что функция FTPCommand объявлена в том же модуле, потому что в wininet.pas - ошибочная.
Получение информации по файлу:
#pas
function GetFTPFileInfo(hFTP: HINTERNET; const FileName: string): Boolean;
var
hFind: HINTERNET;
FindData: TWin32FindData;
begin
Result := False;
hFind := FtpFindFirstFile(hFTP, PChar(FileName), FindData, INTERNET_FLAG_RELOAD, 0);
if (hFind <> nil) then
begin
Result := True;
// Здесь из структуры FindData можно получить ту же информацию, что и в FTPC_FileSearch
InternetCloseHandle(hFind);
end;
end;
SITE CHMOD 644 <filename>
Если будешь делать FTPC_FileAttributes, можешь добавить туда. Rysik будет прыгать от щастья.
Наиболее полный перечень команд FTP со ссылками на официальную документацию:
http://www.iana.org/assignments/ftp-commands-extensions/ftp-commands-extensions.xhtml