Empty Directory Utility Under NT 

 

Environment: Tested on Windows NT (SP5) with Visual C++ 6 (SP4) 

Description

What is it ?

A "Del [Path\]*.*" /sxyz" NT utility. 

Explanations:

I had to write a "Empty Directory" utility on WIN NT, without using Shell. So I wrote this function. I think it can be usefull for programmers who don't have time to learn Files under NT. 

This is a recursive function which delete all the directories and files inside the directory sent as a parameter (sPath). The Parameter 'sPath' has to be a full path name without "\\" at the end. 

So is it ! 

Attention !

With this call, you can empty every directory also important one. I am not responsible for deleting important data with my Code ! 

Return Value:

TRUE if the directory exists, 

FALSE if it not. 

Code

// Include this line before your code where you call 

// this function !

BOOL EmptyDirectory(CString &sPath);

// This is a recursive function which empty a directory path 

// of its files and call itself if necessary to delete

// subdirectories.

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;

}