Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2013, 22:08   #1
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию idFTP, проверка наличие папок и работа

Работаю с idFTP. Пытаюсь проверить наличие деректории(по названию) в открытой, пока написал это:
Код:
var
DeleteAccount: array [1..MAX_PATH] of String;
T: string;
f1: TextFile;
sp,s: TStringList;
I: integer;
r: integer;
begin
idFTP1.Host:='****';
idFTP1.UserName:='***';
idFTP1.Password:='****';
idFTP1.Connect();
if not idFTP1.Connected then
begin
ShowMessage('Не удалось соеденится с сервером');
exit;
end;
if FileExists(Path + '\' + Login + '\Контакты.ini') then
begin
sp:= TStringList.Create;
s:= TStringList.Create;
s.Text:=Logins.Text;
AssignFile(f1,Path + '\' + Login + '\Контакты.ini');
Rewrite(f1);
try
read(f1,T);
Logins.Add(T);
finally
closefile(f1);
end;
if Logins.Count=0 then exit;
s.Text:=Logins.Text;
idFTP1.ChangeDir('/Users/');
idFTP1.List(sp);
Application.ProcessMessages;
for i:=1 To sp.Count Do
begin
if s.Strings[i]=sp.Strings[i] then
s.Delete(i); 
Application.ProcessMessages;
end;
if s.Count > 0 then
begin
for i:=1 To s.Count Do
begin
DeleteAccount[i]:=s.strings[i];
S.Delete(i);
Application.ProcessMessages;
end;
FreeAndNil(s);
FreAndNil(sp);
for i:=1 To sizeof(DeleteAccount) Do
begin
for r:=1 To Logins.Count Do
begin
if Logins.Strings[r]=DeleteAccount[i] then Logins.Delete(i);
Application.ProcessMessages;
end;
T:=T + ',' + DeleteAccount[i];
Application.ProcessMessages;
end;
ShowMessage('Конкты: ' + T + '. Были удалены из системы.');
end;
for i:=1 To Logins.Count Do
ComboBox1.Items.Add(Logins.Strings[i]);
 
for i:=1 To Logins.Count Do
begin
//работаем дальше
idFTP1.ChangeDir(Logins.Strings[i]);
...//пока думаю
Application.ProcessMessages;
end;
end;
Проблема в том, что в открытой папке может содержатся несколько сот тысяч папок и только их получение в список займет более 2 минут. Вопрос: Есть ли в компонента процедура, которая позволяет проверить по название наличие(и только) деректории на сервере?
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на наличие файла bing90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 03.09.2012 23:44
Проверка на наличие процесса NewBoy Общие вопросы C/C++ 5 16.07.2012 20:56
Проверка на наличие файла Vladya Общие вопросы Delphi 7 10.10.2009 01:26
Проверка на наличие в массиве istoe Microsoft Office Excel 8 26.08.2009 11:55
Проверка на наличие таблицы в БД Ramires БД в Delphi 3 18.12.2008 08:59