手机
当前位置:查字典教程网 >编程开发 >C语言 >C++递归删除一个目录实例
C++递归删除一个目录实例
摘要:本文实例讲述了C++递归删除一个目录的实现方法。分享给大家供大家参考。具体方法如下:CFindFile的使用框架如下:复制代码代码如下:vo...

本文实例讲述了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("%sn"), (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("%sn"), (LPCTSTR)str);

RecursiveDelete(str);

//删除目录

::SetFileAttributesA(str, FILE_ATTRIBUTE_NORMAL);

::RemoveDirectory(str);

}

else

{

//删除文件

CString str = ff.GetFilePath();

TRACE(_T("%sn"), (LPCTSTR)str);

::SetFileAttributes(str, FILE_ATTRIBUTE_NORMAL);

::DeleteFile(str);

}

}

ff.Close();

}

int main(int argc, char *argv[])

{

RecursiveDelete("C:20_128");

return 0;

}

希望本文所述对大家的C++程序设计有所帮助。

【C++递归删除一个目录实例】相关文章:

先序遍历二叉树的递归实现与非递归实现深入解析

C/C++语言中结构体的内存分配小例子

全排列算法的非递归实现与递归实现的方法(C++)

如何使用递归和非递归方式反转单向链表

C++中不能被重载的运算符介绍

函数指针的强制类型转换实现代码

如何在C++中建立一个顺序表

C++求斐波那契数的实例代码

C++内核对象封装单实例启动程序的类

用C++实现一个链式栈的实例代码

精品推荐
分类导航