15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Утилита очистки директории под Windows NT

Автор: Michel Yossef David.

От Автора: Что это ? Это функция выполняющая примерно следующую процедуру - "Del [Path\]*.*" /sxyz"
Это рекурсивная функция, которая удаляет содержимое директории вместе с поддиректориями. Имя директории передаётся в функцию, как параметр sPath.

Возвращаемое значение:
TRUE если директория существует,
FALSE если нет.

  Листинг
// Объявление функции 
BOOL EmptyDirectory(CString &sPath);

// А это сама функция очистки директории 
BOOL EmptyDirectory(CString &sPath)
{
 CFileFind finder;

 CString  sWildCard = sPath + "\\*.*";

 BOOL bFound;
 BOOL bWorking = finder.FindFile(sWildCard);

 bFound = bWorking;

 while (bWorking) 
 {
  bWorking = finder.FindNextFile();

  if (finder.IsDots()) continue;

  if (finder.IsDirectory()) 
  {
   CString s = finder.GetFilePath();
   EmptyDirectory(s);
   RemoveDirectory(finder.GetFilePath());
   continue; 
  }
  _unlink( finder.GetFilePath() );

 }

 return bFound;
}