Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Как проверить наличие файла на FTP   Найти похожие ветки 

 
Michael   (2008-08-19 11:12) [0]

Извиняюсь за окровенный оффтоп, но поиск результата не дал.
Ответ по ссылке http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=22877
С использованием FileAge почему-то не работает.
Задачу решил, однако, как мне кажется, не совсем оптимально - перебираю все файлы и сравниваю имя с искомым.
Примерно так:

 for iCnt := 0 to IdFTP1.DirectoryListing.Count-1 do
   if IdFTP1.DirectoryListing.Items[iCnt].FileName = target_file_name then ...

Не подскажете, существует ли более правильное решение, например - аналог SysUtil -кого FileExists?
Спасибо.


 
Dennis I. Komarov ©   (2008-08-19 13:09) [1]

WinInet + FtpFindFist + F1


 
Michael   (2008-08-19 14:17) [2]

Насколько я понимаю, использование
function FtpFindFirstFile(hConnect: HINTERNET; lpszSearchFile: PChar;
 var lpFindFileData: TWin32FindData; dwFlags: DWORD;
 dwContext: DWORD): HINTERNET;

невозможно без хэндла соединения. То есть, используя для соединения Indy, воспользоваться данной функцией нельзя?


 
Dennis I. Komarov ©   (2008-08-19 14:44) [3]

Инди живет отдельной жизнью...
http://www.rsdn.ru/article/inet/inetapi.xml


 
clickmaker ©   (2008-08-19 15:09) [4]

list filename.ext
или nlst filename.ext


 
Michael   (2008-08-19 15:13) [5]


> Инди живет отдельной жизнью...

"Это печально"(С)

Спасибо за ссылку, буду ртфм-ить.)))


 
Dennis I. Komarov ©   (2008-08-19 15:19) [6]

> "Это печально"(С)

ни чуть...


 
Michael   (2008-08-19 15:26) [7]


> list filename.ext
> или nlst filename.ext

Имеются ввиду процедуры компонета TIdFTP?


 
clickmaker ©   (2008-08-19 15:32) [8]

> [7] Michael   (19.08.08 15:26)

можно и так
IdFtp.List("somefile.txt", false);
FileExists := (Length(FIdFtp.ListResult.Text) > 0);


 
Michael   (2008-08-19 15:40) [9]


> IdFtp.List("somefile.txt", false);

У этой процедуры первым параметром идет список строк (TStrings)...


 
clickmaker ©   (2008-08-19 15:45) [10]

> [9] Michael   (19.08.08 15:40)

да? Indy какой версии?
В любом случае можно сказать что-то типа SendCmd и проверить возвращаемое значение (LastCmdResult)


 
Michael   (2008-08-19 15:49) [11]


> clickmaker ©

Indy 9. В этом случае код принципиально отличаться не будет от приведенного в 1-м посте. Вобщем-то, работает, просто я удивлен, что у Инди нет стандартного метода проверки наличия файла. Хотелось бы писать "правильный" код ))



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
15-1268429405
Юрий
2010-03-13 00:30
2010.08.27
С днем рождения ! 13 марта 2010 суббота


15-1266485663
Guresff
2010-02-18 12:34
2010.08.27
Как организовать прием платежей на сайте?


2-1273347308
NBAH1990
2010-05-08 23:35
2010.08.27
Есть ли возможность осуществить запись действий экрана


15-1268404840
Илья_
2010-03-12 17:40
2010.08.27
Ошибка при отладке программы с помощью функции Trace into


2-1267693170
00110011
2010-03-04 11:59
2010.08.27
раздел const