-
Подскажите, как перебрать файлы в цикле с ftp.. IDFTP.Get ('назв. файла на FTP') ,'путь на локальной машине.txt');
-
эммнь... так пойдет? 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;
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;
-
> [0] user (01.08.08 16:12)
List...
-
> [1] Rouse_ © (01.08.08 16:40)
А информация из > hFileConnection := FtpFindFirstFile(FConnect, pChar('*.*') > , FindData, > INTERNET_FLAG_NEED_FILE , 0);
Куда пропала?
-
не совсем поняла код....пишу так ... но теперь выходит другая ошибка : 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
-
Количество форматов более 50, а Инди поддерживает только несколько.
-
спасибо всем за ответы, все получилось!
-
спасибо всем за ответы, все получилось!
|