Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на WinApi, C++Builder, Visual C++


Информационный Канал Subscribe.Ru


Выпуск № 52-2003 BCBDEV.RU

Здравствуйте уважаемые подписчики!

Перед вами очередной выпуск рассылки "Программирование на WinApi"
Переводы многих функций Win32API, которые часто используются в данной рассылке, вы можете получать, подписавшись на дружественную рассылку "WinAPI на русском".
Справочник по функциям Win32API вы можете посмотреть на сайте BcbDev.ru в разделе MSDN по-русски.

Как удалить директорию, если она не пустая?
Вы не можете использовать функцию RemoveDirectory, потому что она работает только с пустыми папками/директориями. Но вы можете использовать функцию оболочки(Shell) для этой цели, вездесущую SHFileOperation:
SHFILEOPSTRUCT sh;

sh.hwnd   = GetSafeHwnd();
sh.wFunc  = FO_DELETE;
sh.pFrom  = "c:\\test\0";
sh.pTo    = NULL;
sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT; 
sh.hNameMappings = 0; 
sh.lpszProgressTitle = NULL; 

SHFileOperation (&sh);
Этот код безболезненно удалит всё дерево каталогов, начиная и включая c:\test.
Но этот метод может не сработать в NT, так как процесс держит папку как текущий каталог. Эта проблема отсутствует в 9х.

Удачи Вам в Ваших делах Куковинец Андрей aka Juggernaut

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное