C++递归遍历文件夹内的所有文件夹与文件(附完整源码)

       C++程序有时需要遍历某个文件夹中的所有文件夹及文件,要处理文件夹中的所有文件,如果文件夹中包含子文件夹时则需要递归遍历(函数递归调用去实现)。

       下面给出调用API函数FindFirstFile和FindNextFile实现文件夹中所有文件的遍历,去计算文件夹中所有文件的大小,实现思路是:

1)先在根路径中遍历,如果是文件,则直接获取文件大小;
2)如果是文件夹,则递归调用当前函数。
3)直到遍历完当前文件夹中的所有文件为止。

相关代码如下:

// 计算文件夹的大小(文件夹中所有文件的大小),注意调用前请将n64FileSzie清零
BOOL CalcFileFolderSize( const CString& strFileDir, __int64& n64FileSzie )
{
	CString  strFindFileName = strFileDir + _T("\\*.*");
	WIN32_FIND_DATA wfd;
	HANDLE hFindFile = FindFirstFile( strFindFileName, &wfd ); 
	if ( hFindFile == INVALID_HANDLE_VALUE )
	{ 
		return FALSE;
	}
	
	while ( 1 )
	{	
		// 将文件夹中的.和..过滤掉,之前仅判断wfd.cFileName[0]是否为‘.’是有问题的,
		// 比如版本控制的代码的目录下包含掩藏的.svn文件夹,会导致文件夹大小计算有误
		//(偏小࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据结构算法是计算机科学中非常重要的内容,而源码则是实现这些内容的代码。C语言是一种非常常用的编程语言,用它编写出的源码简洁、高效,成为许多学习者和专业开发者的首选。 C语言提供了强大的功能和灵活性,适用于编写各种数据结构算法源码。使用C语言编写数据结构算法源码可以充分利用计算机的资源,提高执行效率,尤其适合处理大规模数据和需要高性能的应用场景。 数据结构是指数据在计算机中组织和存储的方式,包括数组、链表、树、图等。算法则是解决问题的步骤和方法,比如查找、排序、图遍历等。编写数据结构算法源码需要考虑其时间复杂度、空间复杂度等性能指标。 C语言提供了丰富的库函数和操作符,可以方便地实现各种数据结构算法。比如可以使用数组和指针实现动态内存分配,实现链表、树等数据结构;可以利用递归和迭代实现各种搜索、排序和图算法。 编写数据结构算法源码需要考虑代码的可读性和复用性,可以采用模块化和面向对象的方式进行设计。合理划分函数和数据结构的职责、利用封装和继承等机制可以增加代码的可维护性和可扩展性。 综上,使用C语言编写数据结构算法源码可以充分发挥C语言的性能优势,实现高效的计算和处理。同时,通过合理的设计和代码结构,可以增加源码的可读性和复用性。因此,学习和掌握C语言的数据结构算法源码是每个计算机科学学生和开发者的必备技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dvlinker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值