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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2016, 11:05   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию найти папку и удалить ее

Подскажите как найти в папку и удалить ее.
Допустим папка лежит в D:\1\название папки

Как удалить я знаю
Код:
function DelDir(Const dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc  := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom  := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;
А вот как найти название папки и удалить ее не знаю)
mitiay вне форума Ответить с цитированием
Старый 21.04.2016, 11:44   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
как найти название папки
погодите. Что Вы собрались искать? Вы не знаете, как называется папка?
Как же Вы её найдёте, если не знаете, как её искать?
А почему её нужно удалить?
Или задача стоит совсем другая - удалить все папки из папки D:\1\ ?
а если они не пустые? а если их много (и они вложенные) - всё равно удалять?

Сформулируйте задачу точнее и конкретней, больше шансов получить ответ.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.04.2016, 12:23   #3
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
погодите. Что Вы собрались искать? Вы не знаете, как называется папка?
Как же Вы её найдёте, если не знаете, как её искать?
А почему её нужно удалить?
Или задача стоит совсем другая - удалить все папки из папки D:\1\ ?
а если они не пустые? а если их много (и они вложенные) - всё равно удалять?

Сформулируйте задачу точнее и конкретней, больше шансов получить ответ.
Путь до папки я знаю.А вот название в D:\1\ ??? постоянно меняются
По этому нужно удалить все папки в D:\1\...
mitiay вне форума Ответить с цитированием
Старый 21.04.2016, 12:35   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

FindFirst, FindNext, FindClose - ищи все файлы и подкаталоги в папке и удаляй что нужно удалить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.04.2016, 13:35   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

просто оставлю этот здесь:

используя вышеуказанную процедуру DelDir все папки в указанном каталоге можно удалить так:
Код:
procedure DelSubDirs(const BasePath: string);
Var SR:TSearchRec;
    FindRes:Integer;
begin
   FindRes:=FindFirst(BasePath+'*.*', faAnyFile, SR);
   While FindRes=0 do
   begin
    if ((SR.Attr and faDirectory)=faDirectory) and (SR.Name<>'.') and (SR.Name<>'..') then
      begin
        Application.ProcessMessages;
        DelDir(BasePath+SR.Name+'\');
      end;
      FindRes:=FindNext(SR);
   end;
   FindClose(SR); 
end;
очевидно, что код будет удалять только вложенные папки (со всем их содержимым), а файлы в указанной папке все останутся.

p.s. Код не проверял!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу удалить папку FranCOder Windows 4 23.05.2015 13:48
Удалить папку с файлами на FTP ilyxaaa Помощь студентам 5 10.03.2015 16:29
удалить файлы и папку (с содержимым) stebelek Общие вопросы Delphi 19 16.02.2012 19:52
Как удалить поврежденную папку? Vikenty Компьютерное железо 13 21.10.2011 20:18
удалить папку без Димарик Общие вопросы Delphi 3 04.10.2007 13:12