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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2015, 14:25   #1
ilyxaaa
Пользователь
 
Регистрация: 18.02.2014
Сообщений: 18
По умолчанию Удалить папку с файлами на FTP

Добрый день.
Подскажите как удалить папку с вложенными файлами через idFTP.
Спасибо
Пока что придумал такой код


Код:
var
  i:Integer;
  Find: string;
begin
    idftp1.Host:=edt1.text;
idftp1.Username:=edt2.text;
idftp1.Password:=edt3.text;
idftp1.Passive:= True;
idftp1.Port:=21;
idftp1.Connect;              {Ïîäêëþ÷Г*åìñÿ}
if idftp1.Connected then  {Åñëè ïîäêëþ÷èëèñü òîãäГ*}
begin
     idftp1.ChangeDir(edt5.text);
     idftp1.List(mmo1.lines,'',false);
for i:=0 to mmo1.lines.count-1 do  begin
 idftp1.Delete(mmo1.lines.strings[i]);
end;
idftp1.ChangeDir('/');
idftp1.RemoveDir(edt5.Text);
 idftp1.Disconnect;
end;
end;
Удаляет папку и файлы в ней, при условии что в папке нету папок
подскажите как доработать, что бы он так же еще и папки в папке удалял?
ilyxaaa вне форума Ответить с цитированием
Старый 10.03.2015, 09:36   #2
ilyxaaa
Пользователь
 
Регистрация: 18.02.2014
Сообщений: 18
По умолчанию

Неужели не кто не знает как сделать?
ilyxaaa вне форума Ответить с цитированием
Старый 10.03.2015, 10:42   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я знаю. Нужно рекурсивно пройтись по всем каталогам внутри удаляемого и поудалять там все.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2015, 11:14   #4
ilyxaaa
Пользователь
 
Регистрация: 18.02.2014
Сообщений: 18
По умолчанию

Stilet, Можешь подсказать как рекурсию сделать?

Нашел вот такой код
Код:
procedure DelFTPDir(Dir: String);
var
  DL: TStringList;
  i: integer;
begin
    DL:=TStringList.Create;
    Form28.idftp1.ChangeDir(Dir);
    Form28.idftp1.List(DL, '', false);
    for i:=0 to DL.Count-1 do
      begin
        if Form28.idftp1.Size(dl.Strings[i])=-1 then
            DelFTPDir(dl.Strings[i]) //Ðåêóðñèÿ
        else
            Form28.idftp1.Delete(dl.Strings[i]); //èíà÷å óäàëÿåì ôàéë
      end;
  Form28.idftp1.ChangeDirUp;
    Form28.idftp1.RemoveDir(Dir);
    DL.Free;
end;
Он удаляет все внутри папки, но вот саму папку он не удаляет.
А выдает ошибку.

Последний раз редактировалось Stilet; 10.03.2015 в 16:28.
ilyxaaa вне форума Ответить с цитированием
Старый 10.03.2015, 15:37   #5
ilyxaaa
Пользователь
 
Регистрация: 18.02.2014
Сообщений: 18
По умолчанию

Вот рабочий код если кому понадобится
Код:
procedure DelFTPDir(Dir: String);
var
  DL: TStringList;
  i: integer;
begin
    DL:=TStringList.Create;
    Form28.idftp1.ChangeDir(Dir);
    Form28.idftp1.List(DL, '', false);
    for i:=0 to DL.Count-1 do
      begin
        if Form28.idftp1.Size(dl.Strings[i])=-1 then
            DelFTPDir(dl.Strings[i]) //Ðåêóðñèÿ
        else
            Form28.idftp1.Delete(dl.Strings[i]); //èíà÷å óäàëÿåì ôàéë
      end;
 // Form28.idftp1.ChangeDirUp;

 Form28.idftp1.ChangeDirUp;
 if Dir=Form28.edt5.text+Form28.edt6.text then begin
    Form28.idftp1.ChangeDir('/');
    Form28.idftp1.RemoveDir(Dir);
    DL.Free;
    end else begin
    Form28.idftp1.RemoveDir(Dir);
    DL.Free;
    end;
end;
ilyxaaa вне форума Ответить с цитированием
Старый 10.03.2015, 16:29   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Можешь подсказать как рекурсию сделать?
Не, примеров нет готовых, и времени пасть нема. Инвентаризацию свожу. Закопался в бумагаг шо крот )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачать папку с FTP NoWay Работа с сетью в Delphi 1 03.02.2013 17:51
удалить файлы и папку (с содержимым) stebelek Общие вопросы Delphi 19 16.02.2012 19:52
загрузить файл на ftp в определенную папку combays Работа с сетью в Delphi 1 21.07.2010 12:39
Как удалить неудаляющуюся папку? Yury111 Безопасность, Шифрование 69 15.11.2009 19:46
удалить папку без Димарик Общие вопросы Delphi 3 04.10.2007 13:12