Как с помощью Wininet получить список файлов на ftp?

kovba
Дата: 19.11.2007 15:12:57
Здравствуйте, не подскажите как не используя сторонних компонент получить список файлов находящихся на ftp?
Спасибо.
Johnmen
Дата: 19.11.2007 15:16:06
А что такое это ftp? Винчестер что ли?
kovba
Дата: 19.11.2007 15:42:25
Johnmen
А что такое это ftp? Винчестер что ли?

Если не знаете что такое ftp откройте википедию http://ru.wikipedia.org/wiki/FTP .В определении есть слова " ... просматривать содержимое каталогов ..." вот мне и надо передать туда команду на просмотр каталога и получить список файлов этого каталога. Решение то есть http://www.cryer.co.uk/brian/delphi/wininet/example_findfirstnextfile.htm, но у меня не совсем обычная задача, у клиента стоит свой (переделаный) сервер ftp, списочек файлов с каталога он отдает по внутренней команде например "lst", вот я и спрашиваю, не подскажет ли кто, можно ли с помощью, например FtpCommand , которая входит в Wininet получить этот список.
Anatoly Podgoretsky
Дата: 19.11.2007 15:48:09
Так формат этой функции тоже надо изучать, а информация есть у Микрософт и она бесплатна.
Если что, то это вероятно команда LIST
alex0
Дата: 19.11.2007 15:49:14
Выполнить стандартное консольное приложение ftp.exe, передав ему через его STDIN команды open, ls, bye (или какие там нужный сервер хочет) и затем получить то что оно вывело в свой STDOUT.
Johnmen
Дата: 19.11.2007 16:00:23
kovba
Johnmen
А что такое это ftp? Винчестер что ли?

Если не знаете что такое ftp откройте википедию http://ru.wikipedia.org/wiki/FTP .

Я думал ты мне скажешь. Если знаешь. Но это вряд ли...
kovba

В определении есть слова " ... просматривать содержимое каталогов ..."

В определении автомобиля есть слова "... экологические проблемы ...". И что?
kovba

вот мне и надо передать туда команду

Куда "туда"? В содержимое каталогов?
Anatoly Podgoretsky
Дата: 19.11.2007 16:02:48

Это будет не Wininet , а Wininet это нормально делает, тот же проводник или
интернет эксплорер, они работаю через эту библиотеку.
Все что нужно это посмотреть справку по АПИ, а сюда непоняные моменты.


Posted via ActualForum NNTP Server 1.4

WYPMAH
Дата: 19.11.2007 17:29:07
Действительно, легче всего через библиотеку WinInet. Я когда то давно делал подобную штуку, было что то наподобие вот этого:

function GetFilesInDir(var FilesList: TStringList; Directory: String): Boolean;
var
  fd: WIN32_FIND_DATA;
  CurDir: String;
  hFile: HINTERNET;
begin
  hFile := nil;
  Result := False;

  if (hFtp <> nil) and (Assigned(FilesList)) then
  begin
    FilesList.Clear;

    if (Directory <> '.') then
    begin
      CurDir := Self.GetCurrentDir;
      if not Self.SetCurrentDir(Directory) then Exit;
    end;

    hFile := FtpFindFirstFile(hFtp, PChar('*.*'), fd, INTERNET_FLAG_NEED_FILE, 0);

    if (hFile <> nil) then
    begin
      FilesList.Add(fd.cFileName);

      while (InternetFindNextFile(hFile, @fd) <> false) do
        FilesList.Add(fd.cFileName);

      InternetCloseHandle(hFile);
      Result := true;

      if (Directory <> '.') then
        FtpSetCurrentDirectory(hFtp, PChar(CurDir));
    end;
  end;
end;

ЗЫ за 100% работоспособность не отвечаю, было всё очень давно, просто выдрал кусок из кода, для примера)))
kovba
Дата: 20.11.2007 10:19:54
Большое спасибо всем за ответ, особенно WYPMAH чей пример мне действительно помог. Не понял я только пустые разговоры Johnmen, не хочеш (знаеш) не отвечай зачем разводить базар не в тему, впечатление "студент которому нечем заняться, а зарабатывает на количестве отписаных постов". Anatoly Podgoretsky - извините, просто к справке MSDN по этим функциям хотелось примерчика, вот и задал вопрос (следующий почитает больше не будет задавать таких глупых вопросов). Конечно Вы правы, больше почитал бы, разобрался сам, но с примером WYPMAH, получилось действительно быстрее, за что ему и благодарен.
Johnmen
Дата: 20.11.2007 10:26:00
автор
Не понял я только пустые разговоры Johnmen,

Потому, что тебе ещё рано (с)
автор
не хочеш (знаеш) не отвечай зачем разводить базар не в тему,

Это я сам решу как-нибудь.
автор
впечатление "студент которому нечем заняться, а зарабатывает на количестве отписаных постов

Таких впечатлительных здесь навалом, не ты один.