Re: Deleting directory on Windows.
Evil Kosh <[email protected]>
| Newsgroups | gmane.comp.video.gimp.windows.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi,
You can use the function rmdir(char *path);
it works for me, if you want to recurse, you're going to have to do some
system specific stuff, perhaps an abstraction layer, or an #ifdef pair
if you want to recurse, I suppose this code would work on win32.
<code>
bool VFSHandle_file::DeleteDir(char *directory, bool recurse)
{
char path[256];
sprintf(path,"%s/*.*",directory);
if(recurse==true){
_finddata_t find;
long Filehandle = _findfirst(path,&find);
if(Filehandle == -1){
if(errno == ENOENT){
_findclose(Filehandle);
return DeleteDir(directory,false);
}
if(errno == EINVAL){
_findclose(Filehandle);
return false; // should this happen ever
with *.* ? I dont think so....
}
}else{
do{
if(strcmp(find.name,".") != 0 &&
strcmp(find.name,"..") != 0){
memset(path,0,256);
sprintf(path,"%s/%s",directory,find.name);
Deletefile(path);
}
}while(_findnext(Filehandle,&find) == 0);
_findclose(Filehandle);
return DeleteDir(directory,false);
}
// have to delete all the files in the folder, then
remove it, all the way back to the root directory requested to delete
return false;
}
if(rmdir(directory) == -1){
if(errno == ENOTEMPTY) return false;
if(errno == ENOENT) return false;
}
return true;
}
</code>
That would recursively delete a directory for you, you'll notice I used an
object to contain the win32 code apart from the linux code, but I Suppose
any method which has the same effect would be nice.
By the way, what IS the bug with remove() on linux? I dont know and I've
tried looking on google but with so many results I can't find the specific bug.
thanks
kosh
At 10/10/2002 15:00, you wrote:
> I am trying not to use system.. but I guess I will have to resort to that.
>
> I could use remove("path"); but it seems that it uses libc4/5 and it has a
>bug.
>
> Thanks for the help.
>
> What woule be the diference between deldir and deltree ?
>
> Thanks.
>
>Harring.
>--- Chris Nystrom <[email protected]> wrote:
> > On Thu, 10 Oct 2002, harringf wrote:
> >
> > > Is there an easy way to delete directories ( with files ) from within
> > > a program.
> >
> > Off the top of my head, how about something like:
> >
> > #ifdef WIN32
> > system("deldir <dirname>");
> > #endif
> >
> > Chris
> >
> >
> >
>
>
>__________________________________________________
>Do you Yahoo!?
>Faith Hill - Exclusive Performances, Videos & More
>http://faith.yahoo.com
>
>
>To Post a message, send it to: [email protected]
>To Unsubscribe, send a blank message to: [email protected]
>
>Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
>---
>Incoming mail is certified Virus Free.
>Checked by AVG anti-virus system (http://www.grisoft.com).
>Version: 6.0.400 / Virus Database: 226 - Release Date: 09/10/2002