Вверх ↑
Ответов: 4621
Рейтинг: 746
#1: 2014-05-19 16:30:24 ЛС | профиль | цитата
Закончил тестировать докачку ftpc_readwrite 2014-05-22.7z
Вывод следующий: имеющееся в 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
карма: 26

0