递归的创建目录
递归创建目录、删除目录
windows api中没有提供现成的多层创建目录、删除目录。这里修改了部分代码实现递归创建目录、删除目录。
//删除目录
bool deletedirectory(char* sdirname)
{
cfilefind tempfind;
char stempfilefind[200] ;
sprintf(stempfilefind,"%s\\*.*",sdirname);
bool isfinded = tempfind.findfile(stempfilefind);
while (isfinded)
{
isfinded = tempfind.findnextfile();
if (!tempfind.isdots())
{
char sfoundfilename[200];
strcpy(sfoundfilename,tempfind.getfilename().getbuffer(200));
if (tempfind.isdirectory())
{
char stempdir[200];
sprintf(stempdir,"%s\\%s",sdirname,sfoundfilename);
deletedirectory(stempdir);
}
else
{
char stempfilename[200];
sprintf(stempfilename,"%s\\%s",sdirname,sfoundfilename);
deletefile(stempfilename);
}
}
}
tempfind.close();
if(!removedirectory(sdirname))
{
return false;
}
return true;
}
// 判断目录是否存在
bool folderexists(cstring s)
{
dword attr;
attr = getfileattributes(s);
return (attr != (dword)(-1) ) &&
( attr & file_attribute_directory);
}
// 创建目录
bool createdir(cstring p)
{
int len=p.getlength();
if ( len <2 ) return false;
if('\\'==p[len-1])
{
p=p.left(len-1);
len=p.getlength();
}
if ( len <=0 ) return false;
if (len <=3)
{
if (folderexists(p))return true;
else return false;
}
if (folderexists(p))return true;
cstring parent;
parent=p.left(p.reversefind('\\') );
if(parent.getlength()<=0)return false;
bool ret=createdir(parent);
if(ret)
{
security_attributes sa;
sa.nlength=sizeof(security_attributes);
sa.lpsecuritydescriptor=null;
sa.binherithandle=0;
ret=(createdirectory(p,&sa)==true);
return ret;
}
else
return false;
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)