Empty Directory Utility Under NT
Posted
by Michel Yossef David
on August 4th, 2000
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;
}

Comments
Thanks
Posted by Legacy on 08/06/2003 12:00amOriginally posted by: vijay
Thanks
Reply
Just a small helpful addition...
Posted by Legacy on 04/22/2003 12:00amOriginally posted by: Eyes`Only
FYI-
If you add the line...
sPath.TrimRight('\\');
... right before your line ...
CString sWildCard = sPath + "\\*.*";
... you effectively remove the requirement "The Parameter 'sPath' has to be a full path name without "\\" at the end."
Just in case anyone wants to errorproof their code the easy way :)
Eyes`Only
Replyyou just won the first place! congrats.
Posted by Legacy on 04/13/2003 12:00amOriginally posted by: Stan
Could it be any more trivial? Your article just won the first place in our yearly "10 most trivial pieces of code" competition.
Reply
Great
Posted by Legacy on 03/12/2003 12:00amOriginally posted by: Anuo
Oh yeah! I just like this.
ReplyBig thanks from a total beginner
Posted by Legacy on 11/16/2002 12:00amOriginally posted by: bodozer
Thanks for the code.
I found it very useable for my project.
I'm totally new in VC++.
I used BC++ (for DOS) 10-15 years ago.
regards bodozer,
Replyread only directory
Posted by Legacy on 09/09/2002 12:00amOriginally posted by: brownbro
What if the directory is read only ? I've had challenges in the past with RemoveDirectory() returning an error when the directory is read only.
ReplyNON-MFC Version
Posted by Legacy on 07/18/2002 12:00amOriginally posted by: J.T. Gilkeson
ReplyGREAT CODE!
Posted by Legacy on 03/10/2002 12:00amOriginally posted by: Dian Suharto
Simple, nice and working code.
Thanks!!!
Dian Suharto
Replygreat code
Posted by Legacy on 02/19/2002 12:00amOriginally posted by: anand
great code.It simplified my work
ReplyGreat for beginners
Posted by Legacy on 02/11/2002 12:00amOriginally posted by: Chris Hunter
I am just beginning Visual C++ programming. I found this article and it looks to be extremely helpful. I just wanted to say thanks.
ReplyLoading, Please Wait ...