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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2007, 13:59   #1
Fia
 
Регистрация: 22.04.2007
Сообщений: 6
По умолчанию Удаление непустого каталога

Всем добрый день!
Подскажите пожалуйста, как удалить непустой каталог? Количество и имена файлов неизвестны, и могут быть произвольными.
Fia вне форума Ответить с цитированием
Старый 06.05.2007, 15:59   #2
СТРАННИК
Пользователь
 
Аватар для СТРАННИК
 
Регистрация: 20.12.2006
Сообщений: 43
По умолчанию

function MyRemoveDir(sDir : string) : Boolean;
var
iIndex: Integer;
SearchRec: TSearchRec;
sFileName: string;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);

while iIndex = 0 do
begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.name;
if SearchRec.Attr = faDirectory then
begin
if (SearchRec.name <> '' ) and (SearchRec.name <> '.') and
(SearchRec.name <> '..') then
MyRemoveDir(sFileName);
end
else
begin
if SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
if not DeleteFile(sFileName) then
ShowMessage('Could NOT delete ' + sFileName);
end;
iIndex := FindNext(SearchRec);
end;

FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;

// ***************************** //
// Пример: //
// ***************************** //
if not MyRemoveDir('D:\myDir') then
ShowMessage('Can NOT delete dir');

// Кстати, системные, скрытые и
// read-only файлы тоже будут удалены.
Если бы я был на столько умён, чтобы ответить на все вопросы самостоятельно, я бы не спрашивал...

Последний раз редактировалось СТРАННИК; 06.05.2007 в 16:09.
СТРАННИК вне форума Ответить с цитированием
Старый 07.05.2007, 13:11   #3
RSLoader
_________
Пользователь
 
Аватар для RSLoader
 
Регистрация: 27.03.2007
Сообщений: 69
По умолчанию

WinExec('CMD /C RD /S /Q C:\MyPath',SW_SHOWNORMAL);
RSLoader вне форума Ответить с цитированием
Старый 07.05.2007, 14:11   #4
НЕ_АЙС
Форумчанин
 
Регистрация: 18.04.2007
Сообщений: 135
По умолчанию

function TForm1.DeleteDirectory(DirPath: 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(DirPath + #0);
end;
Result := (0 = ShFileOperation(fos));
end;
НЕ_АЙС вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление каталога с файлами SANTA_KLAUD Общие вопросы Delphi 17 28.05.2008 17:47
картинки из каталога Var17 PHP 2 06.03.2008 22:05
Проблема с копированием каталога!!! Volkogriz Общие вопросы Delphi 15 18.10.2007 07:57
Копирование КАТАЛОГА Рустам Общие вопросы Delphi 10 13.10.2007 12:22
Шифрование каталога _SERGEYX_ Безопасность, Шифрование 3 02.08.2007 15:16