Главная страница
    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.46 MB
Время: 0.076 c
2-1265445748
lewka
2010-02-06 11:42
2010.08.27
Размеры изображения


15-1269520791
Sergey13
2010-03-25 15:39
2010.08.27
Lazarus & FireBird


2-1266589006
Vaso
2010-02-19 17:16
2010.08.27
Вставка текущей даты в БД


15-1274905785
Юрий
2010-05-27 00:29
2010.08.27
С днем рождения ! 27 мая 2010 четверг


2-1268698888
DROWSY
2010-03-16 03:21
2010.08.27
Как обновить параметризованный набор,





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский