Як видалити непусту директорію

непусту

Фух. Складна видалася вночі. :-/

Власне, сабж. Може бути дуже велика кількість вкладених папок та файлів.

файл

файл

непусту

Є й інший спосіб:

Цей код повинен видаляти каталог у кошик, який можна очистити

Якщо кошик не потрібний, то треба змінити fFlags, тільки на що не пам'ятаю.

файл

операції

Ось знайшов дещо.

TSHFileOpStruct = record Wnd: HWND; wFunc: UINT; pFrom: PANsiChar; pTo: PANsiChar; fFlags: FILEOP_FLAGS;// Word; fAnyOperationsAborted: BOOL; hNameMappings: Pointer; lpszProgressTitle: PANsiChar; < only used if FOF_SIMPLEPROGRESS > end;

Структура TSHFileOpStruct використовується функцією SHFileOperation для проведення файлових операцій.

Wnd: хендл діалогового вікна, що відображає статус операції;

wFunc: тип операції: FO_COPY - копіювати файл. FO_MOVE – перемістити файл. FO_DELETE – видалити файл. FO_RENAME -перейменувати файл.

pFrom: покажчик на рядок із ім'ям вихідного файлу.

pTo: покажчик на рядок з ім'ям файлу, який копіюється, переміщується або перейменовується вихідний файл.

fFlags: прапори, які визначають параметри операції. FOF_ALLOWUNDO - зберігає інформацію про можливе скасування операції.

FOF_FILESONLY - виконує операцію лише для файлів, якщо задана маска файлів. FOF_MULTIDESTFILES - вказує, що pTo описує кілька файлів (по одному на кожен файл джерела) замість одного каталогу, куди мають бути розміщені вихідні файли. FOF_NOCONFIRMATION – відповідає "Так для всіх" на всі питання. FOF_NOCONFIRMMKDIR – не вимагає підтвердження створення нового каталогу. FOF_NO_CONNECTED_ELEMENTS - З версії 5.0. Чи не переміщаєпов'язані файли як групу. Тільки переміщує вказані файли.

FOF_NOCOPYSECURITYATTRIBS - З версії 4.71. Не копіює атрибути безпеки файлу. FOF_NOERRORUI - Не відображає інтерфейс користувача при помилці. FOF_NORECURSION - Не підтримує рекурсивні операції у підкаталогах, працює лише у локальному каталозі. FOF_RENAMEONCOLLISION - надає файлу нове ім'я при операціях копіювання, переміщення або перейменування, якщо файл із зазначеним ім'ям вже існує. FOF_SILENT - не показує прогрес бар, що відображає хід операції.

FOF_SIMPLEPROGRESS – відображає вікно прогрес бару, але не показує імен файлів. FOF_WANTMAPPINGHANDLE - Визначає використання поля hNameMappings. Хендл об'єкта має бути звільнений функцією SHFreeNameMappings.

fAnyOperationsAborted: Приймає значення True якщо операцію було перервано або False в іншому випадку.

hNameMappings: Хендл об'єкта, що містить масив структур SHNAMEMAPPING. Кожна структура SHNAMEMAPPING містить старі та нові шляхи для кожного файлу, з яким зроблено операції переміщення, копіювання або перейменування. Це поле використовується, якщо встановлено прапорець FOF_WANTMAPPINGHANDLE.

lpszProgressTitle: покажчик на рядок заголовка для вікна прогресу; використовується тільки якщо серед прапорів є FOF_SIMPLEPROGRESS