![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| AlexV |
|
|||
|
Unregistered |
Зная путь к папке, требуется максимально просто и надежно удалить все файлы в этой папке программно. Считаем, что в этой папке нет подпапок, а просто лежат файлы.
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
procedure DeleteFolder(DirName :String);
// Удаление файлов, из каталога включая подкаталоги var h :tHandle; wfd :tWin32FindData; begin DirName:= slash(DirName); h := Windows.FindFirstFile(PChar(DirName+'*.*'), wfd); try if h <> INVALID_HANDLE_VALUE then begin repeat if (wfd.cFileName <> String('.')) and (wfd.cFileName <> '..') then begin if (wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then begin DeleteFolder(IncludeTrailingPathDelimiter(DirName+wfd.cFileName)); end else begin Windows.DeleteFile(PChar(DirName+wfd.cFileName)); end; end; until not Windows.FindNextFile(h,wfd); end; // проверка кода ошибки и FindFirstFile и FindNextFile case GetLastError of ERROR_NO_MORE_FILES, // больше нет файлов и каталогов удовлетворяющих маске (но были) ERROR_FILE_NOT_FOUND, // вообще нет файлов и каталогов удовлетворяющих маске ERROR_SHARING_VIOLATION // возникает во время создания каталога (уже создан но еще недоступен) : ; // ничего не делаем, все Ok else // все остальные ошибки raise Exception.CreateFmt(errDelFolder,[DirName,{SysErrorMessage(}inttostr( GetLastError){)}]); end; finally if h <> INVALID_HANDLE_VALUE then Windows.FindClose(h); end; end; -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| AlexV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 13.11.2002 Репутация: нет Всего: нет |
Что за функция slash ? Где ее взять ?
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Вообще-то это написано в нашем FAQ
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
ShFileOperation()
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| dser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.2.2003 Где: Украина Харьковск ая обл. Репутация: нет Всего: нет |
Используй компоненты третьих фирм
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |