Как удалить папку в delphi?

Пользователь

от gussie.jones , в категории: Другие , 3 года назад

Как удалить папку в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

P

Пользователь

от Programmer , 3 года назад

@gussie.jones Добрый день!

Все зависит от того какую версию Delphi вы используете, до версии 2010 года это делалось сложнее, по причине того, что нельзя было удалить полную папку и предварительно приходилось удалять все ее содержимое, пустая удалялась при помощи процедуры RemoveDir

В новых версиях удаление происходит просто

1
TDirectory.Delete('полный путь твоей директории',true);

А в старых сделать очистку папки можно было так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
procedure DelFolder(const dir: string);
Var SR:TSearchRec;
    FindRes:Integer;
begin
FindRes:=FindFirst(dir+'*.*',faAnyFile,SR);
While FindRes=0 do
   begin
    if ((SR.Attr and faDirectory)=faDirectory)and(SR.Name<>'.')and(SR.Name<>'..') then
      begin
      Application.ProcessMessages;
        DelFolder(dir+SR.Name+'\');
        RemoveDir(dir+SR.Name);
      end;
    if ((SR.Attr and faDirectory)<>faDirectory)and(SR.Name<>'.')and(SR.Name<>'..') then
        DeleteFile(dir+SR.Name); 
      FindRes:=FindNext(SR);
   end;
FindClose(SR); 
end;

Пользователь

от pauline , 2 года назад

@gussie.jones 

Для удаления папки в Delphi можно использовать процедуру RemoveDir, которая предоставляется в модуле System.SysUtils:

1
2
3
4
5
6
7
8
9
uses
  System.SysUtils;
  
...

if RemoveDir('C:TestFolder') then
  ShowMessage('Папка успешно удалена')
else
  ShowMessage('Не удалось удалить папку');


В этом примере удаляется папка C:TestFolder. Если операция выполнена успешно, то будет выведено сообщение "Папка успешно удалена". Если же возникла ошибка, например, если указанная папка не существует или не имеется доступа к ней, то будет выведено сообщение "Не удалось удалить папку".