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

Вниз

Как перебрать все файлы с FTP ?   Найти похожие ветки 

 
user   (2008-08-01 16:12) [0]

Подскажите, как перебрать  файлы в цикле с ftp..
IDFTP.Get ("назв. файла на FTP") ,"путь на локальной машине.txt");


 
Rouse_ ©   (2008-08-01 16:40) [1]

эммнь... так пойдет?

uses
 WinInet;

procedure TForm27.Button1Click(Sender: TObject);

 procedure FindFTPFiles(FConnect: HINTERNET; Dir: String);
 var
   hFileConnection: HINTERNET;
   FindData: TWin32FindData;
   SubDirs: TStringList;
   I: Integer;
 begin
   SubDirs := TStringList.Create;
   try
     FtpSetCurrentDirectory(FConnect, PChar(Dir));
     hFileConnection := FtpFindFirstFile(FConnect, pChar("*.*"), FindData,
       INTERNET_FLAG_NEED_FILE , 0);
     if hFileConnection <> nil then
     try
       ZeroMemory(@FindData, SizeOf(TWin32FindData));

       while InternetFindNextFile(hFileConnection, @FindData) do
       begin
         if
           (StrPas(FindData.cFileName) = ".") or
           (StrPas(FindData.cFileName) = "..") then
           Continue;

         if FindData.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then
         begin
           SubDirs.Add(Dir + String(FindData.cFileName) + "/");
           Memo1.Lines.Add(Dir + String(FindData.cFileName) + "/");
         end
         else
           Memo1.Lines.Add(Dir + String(FindData.cFileName));

         Application.ProcessMessages;
         //if Memo1.Lines.Count > 100 then Break;
       end;

     finally
       InternetCloseHandle(hFileConnection);
     end;

     for I := 0 to SubDirs.Count - 1 do
       FindFTPFiles(FConnect, SubDirs.Strings[I]);

   finally
     SubDirs.Free;
   end;
 end;

var
 FSession, FConnect: HINTERNET;
 FHost: String;

begin
 FHost := "ftp.synclub.ru";
 FSession := InternetOpen("", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if not Assigned(FSession) then Exit;
 try
   FConnect := InternetConnect(FSession, PChar(FHost),
     INTERNET_DEFAULT_FTP_PORT, PChar("synclub"),
     PChar("synclub"), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
   if not Assigned(FConnect) then Exit;
   try
     FindFTPFiles(FConnect, "/jazz/3rd Force/");
     Memo1.Lines.Add("=====================================");
     Memo1.Lines.Add("All done");
   finally
     InternetCloseHandle(FConnect);
   end;
 finally
   InternetCloseHandle(FSession);
 end;
end;


 
Dennis I. Komarov ©   (2008-08-04 14:26) [2]

> [0] user   (01.08.08 16:12)

List...


 
Dennis I. Komarov ©   (2008-08-05 10:00) [3]

> [1] Rouse_ ©   (01.08.08 16:40)

А информация из
> hFileConnection := FtpFindFirstFile(FConnect, pChar("*.*")
> , FindData,
>       INTERNET_FLAG_NEED_FILE , 0);

Куда пропала?


 
user   (2008-08-05 14:25) [4]

не совсем поняла код....пишу так ...
но теперь выходит другая ошибка :
begin
sl:=TStringList.Create;
try
with IdFTP do
begin
  Host := "10.1.6.23";
  Password := "XXX";
  Username := "CR";
  Connect;
  ChangeDir ("CSVED");//("cdr");

   List(sl, " ",False);  
  for i:=0 to idFTP.DirectoryListing.Count-1 do
   begin
здесь выходит  Ошибка: Unknown FTP Listing format


 
Anatoly Podgoretsky ©   (2008-08-05 14:43) [5]

Количество форматов более 50, а Инди поддерживает только несколько.


 
user   (2008-08-05 15:37) [6]

спасибо всем за ответы, все получилось!


 
user   (2008-08-05 15:37) [7]

спасибо всем за ответы, все получилось!



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

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

Наверх




Память: 0.48 MB
Время: 0.101 c
15-1270041267
12
2010-03-31 17:14
2010.08.27
Прикольный рудимент. D7.XP.


2-1273664604
Дмитро
2010-05-12 15:43
2010.08.27
delphi


3-1240631464
ddd329
2009-04-25 07:51
2010.08.27
Объединение записей


15-1267306205
Юрий
2010-02-28 00:30
2010.08.27
С днем рождения ! 28 февраля 2010 воскресенье


15-1272032376
Демо
2010-04-23 18:19
2010.08.27
Ассоциативные массивы в БД