![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с FTP через компаненты Indy [D7, WinXP]
студентик © (2006-05-19 11:15:00)Здравствуйте, мастера.
На FTP-сервере есть ПУСТОЙ каталог /Out.
Я получаю список файлов из него.
IdFTP1.ChangeDir(FtpOut);
IdFTP1.TransferType := ftBinary;
idFTP1.List(LS, '*.*', false);
Затем обрабатываю список и вызываю
idFTP1.quit;
После чего проверяю, а есть ли еще соеднение или нет
while IdFTP1.Connected do ...
и оказывается, что оно есть! И в итоге тут происходит зацикливание! Ну ладно бы еслиб в каталоге было пару сотен тысяч файлов, тогда бы можно было подумать, что он их упорно считывает, но каталог ПУСТОЙ!!!!
Вопрос: почему не происходит разсоединение? Причем не на постоянной основе, а случайным образом, т.е. два часа может все быть нормально и после Quit состояние Connected становится False. а вот на 101-ой попытке сканирования каталога компонент idFTP "забывает" сменить свой статус.
В чем может быть проболема тут?
P.S. Заранее благодарен
Студентик (2006-05-25 17:33:00) [1]Вопрос все еще открыт :(
Добавлю только, что в OnStatus проверил и получил и hsDisconnecting, и hsDisconnected. Но после этого проверив IdFTP.Connected получил все тоже True. И в дальнейшем Connected остается навсегда True. Не помогают ни QUIT, ни Disconnect. Что делать? Может кто-то все же сталкивался?
студентик (2006-05-19 12:10:00) [2]>> Сделай idFtp1.Abort перед вызовом Quit.
Сделал... и даже больше... еще и IdFTP1.Disconnect(True);
но даже после этого IdFTP1.Connected = True
:(
Плохиш (2006-05-19 11:51:00) [3]
> студентик (19.05.06 11:15)
СделайidFtp1.Abortперед вызовом Quit.