|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.05.2007, 13:59 | #1 |
Регистрация: 22.04.2007
Сообщений: 6
|
Удаление непустого каталога
Всем добрый день!
Подскажите пожалуйста, как удалить непустой каталог? Количество и имена файлов неизвестны, и могут быть произвольными. |
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 |
_________
Пользователь
Регистрация: 27.03.2007
Сообщений: 69
|
WinExec('CMD /C RD /S /Q C:\MyPath',SW_SHOWNORMAL);
|
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; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление каталога с файлами | 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 |