![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перебрать все файлы с FTP ?
user © (2008-08-01 16:12:00)Подскажите, как перебрать файлы в цикле с ftp..
IDFTP.Get ('назв. файла на FTP') ,'путь на локальной машине.txt');
user (2008-08-05 15:37:00) [1]спасибо всем за ответы, все получилось!
user (2008-08-05 15:37:00) [2]спасибо всем за ответы, все получилось!
Anatoly Podgoretsky (2008-08-05 14:43:00) [3]Количество форматов более 50, а Инди поддерживает только несколько.
user (2008-08-05 14:25:00) [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
Dennis I. Komarov (2008-08-05 10:00:00) [5]> [1] Rouse_ © (01.08.08 16:40)
А информация из
> hFileConnection := FtpFindFirstFile(FConnect, pChar('*.*')
> , FindData,
> INTERNET_FLAG_NEED_FILE , 0);
Куда пропала?
Dennis I. Komarov (2008-08-04 14:26:00) [6]> [0] user (01.08.08 16:12)
List...
Rouse_ (2008-08-01 16:40:00) [7]эммнь... так пойдет?
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;