![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TCP клиент Indy в Delphi 2005
Stealth © (2005-11-17 17:48:00)Здрасте всем!
Вот в чем загвоздка...
Нужно получить списо каталогов и файлов и при этом каталоги запихнуть в один листбокс а файлы в другой!
после IdFTP.List не происходит заполнения IdFTP.DirectoryListing.Items.... (нужен для того, что бы считать ItemType и если он равен ditDirectory то понятно, что это каталог)
Вопрос - почему???
В примере к инди 9 - все работает...
А вот в примере к инди 10 - они предлагают:
Сначала получить список всех файлов и каталогов от сервера, потом для того, что бы определить файл это или каталог запрашивать от сервака размер каждого файла, и если сервак выдает -1 - то это каталог, а если >= 0 то
файл...
По моему это очень криво... и что самое главное - ДОЛГО!!!!
Помогите разобраться!
Заранее спасибо!
Eraser (2005-11-23 22:23:00) [1]
> Stealth (23.11.05 21:35) [7]
Тут я не советчик, т.к. не разу данными ф-и не пользовался.
Stealth (2005-11-23 21:35:00) [2]> Eraser ©
Вот сразу по ходу вопросик...
Пишу:
procedure TForm1.Button1Click(Sender: TObject);
begin
hInternet := InternetOpen(PChar('1'),INTERNET_OPEN_TYPE_DIRECT,Nil,Nil,INTERNET_FLAG_ASYNC);
If hInternet <> nil then begin
hFTP := InternetConnect(hInternet,PAnsiChar(HostEdit.Text),StrToInt(PortEdit.Text),PAnsiChar(UserNameEdit.Text),PAnsiChar(UserPa sswordEdit.Text),INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);
If hFTP <> nil then begin
ShowMessage('Connected to FTP Server');
If InitFolderEdit.Text <> '' then begin
If FtpSetCurrentDirectory(hFTP,PAnsiChar(InitFolderEdit.Text)) then ShowMessage('Set FTP Directory to '+InitFolderEdit.Text)
else ShowMessage('CAN''T SET FTP Directory to '+InitFolderEdit.Text);
end;
end else ShowMessage('Cant connect to FTP Server!');
end else ShowMessage('Cant connect to Internet!')
end;
И при попытке открытия каталога функцией FtpSetCurrentDirectory(hFTP,PAnsiChar(InitFolderEdit.Text)) существующего на ftp сервере функция возвращает 0 (False), хотя должна была бы вернуть 1 (True). И с не существующим каталогом то же самое - опять false.
Подобное возникает и при вызове InternetFindNextFile(hFind,@FindData) всегда возвращается True, даже если все файлы уже прочитаны.
Что можете подсказать???
Eraser (2005-11-23 14:14:00) [3]
> Stealth (23.11.05 10:35) [5]
см. MSDN по ключевому слову WinInet.
Stealth (2005-11-23 10:35:00) [4]> Eraser ©
А где можно пайти хоть какую описалку на англ или рус? а еще лучше пример (али примеры)?
Eraser (2005-11-23 01:19:00) [5]
> Stealth (17.11.05 19:43) [1]
С FTP в Indy перемудрили, индивский фтп удобно использовать, так сказать, для внутреннего использования, при этом использовать custom режимы парсинга директорий и т.д.
Для работы в инете лучше использовать стандартные API для работы с FTP.
Stealth (2005-11-22 19:59:00) [6]К ItMan ©:
А что теперь используешь?
ItMan (2005-11-22 03:20:00) [7]Там вроде глюк есть. Зависит от вывода листа сервером. Смотри исходники Indy. Я часа 2 гемороился, затем ушел от indy.
Stealth (2005-11-17 19:43:00) [8]ПРОСТИТЕ!!!
Тему не правильно написал!!!
Я не про TCP клиента... А про FTP клиента