Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Как проверить наличие файла на 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.063 c
15-1268978113
oldman
2010-03-19 08:55
2010.08.27
Драйвер для Xerox Phaser 3117 под МЕ


15-1275510579
Юрий
2010-06-03 00:29
2010.08.27
С днем рождения ! 3 июня 2010 четверг


15-1271364443
pokey
2010-04-16 00:47
2010.08.27
Регистрация в QIWI


2-1271740246
serhiyiv
2010-04-20 09:10
2010.08.27
Прочитать текст с екрана


2-1273310856
FIL-23
2010-05-08 13:27
2010.08.27
как добавить запись в базу с помощь sql запроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский