时间:2021-05-20
本文实例讲述了C++递归删除一个目录的实现方法。分享给大家供大家参考。具体方法如下:
CFindFile的使用框架如下:
复制代码 代码如下:void Recurse(LPCTSTR pstr)
{
CFileFind finder;
// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");
// start working for files
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (finder.IsDots())
continue;
// if it's a directory, recursively search it
if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
TRACE(_T("%s\n"), (LPCTSTR)str);
Recurse(str);
}
}
finder.Close();
}
递归删除代码如下:
复制代码 代码如下://循环删除一个目录
void RecursiveDelete(CString strDir)
{
CFileFind ff;
CString strPath;
strPath = strDir;
if (strPath.Right(1) != '\\')
{
strPath += '\\';
}
strPath += "*.*";
BOOL bWorking = ff.FindFile(strPath);
while (bWorking)
{
bWorking = ff.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (ff.IsDots())
continue;
// if it's a directory, recursively search it
if (ff.IsDirectory())
{
//递归目录
CString str = ff.GetFilePath();
TRACE(_T("%s\n"), (LPCTSTR)str);
RecursiveDelete(str);
//删除目录
::SetFileAttributesA(str, FILE_ATTRIBUTE_NORMAL);
::RemoveDirectory(str);
}
else
{
//删除文件
CString str = ff.GetFilePath();
TRACE(_T("%s\n"), (LPCTSTR)str);
::SetFileAttributes(str, FILE_ATTRIBUTE_NORMAL);
::DeleteFile(str);
}
}
ff.Close();
}
int main(int argc, char *argv[])
{
RecursiveDelete("C:\\20_128\\");
return 0;
}
希望本文所述对大家的C++程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C/C++实现递归和栈逆序字符串的实例递归函数调用模型逆序方法voidrevers(char*buf){char*p=buf;if(p==NULL){retur
在php中删除文件与目录其实很简单只要两个函数一个是unlink一个rmdir函数,如果要实现删除目录及目录下的文件我们需要利用递归来操作.函数代码:仅删除指定
实例如下:#!/usr/bin/python#-*-coding:utf-8-*-importosdefdel_dir_tree(path):'''递归删除目录
本文实例讲述了php删除指定目录的方法。分享给大家供大家参考。具体分析如下:这段代码可实现递归删除子目录的功能read()){//Skippointersif(
本文实例总结了PHP目录操作方法。分享给大家供大家参考,具体如下:目录操作新建目录:mkdir(路径,权限,递归创建)删除目录:rmdir()移动(改名):re