文档章节

C++遍历文件夹

节操狗
 节操狗
发布于 2015/06/10 01:18
字数 181
阅读 10
收藏 0
#include <windows.h>
#include <stdio.h>
#include <string.h>
#define LEN 1024

FILE *fp=fopen("traverse.xls", "w");


// 深度优先递归遍历目录中所有的文件

BOOL  DirectoryList(LPCSTR Path)
{
     WIN32_FIND_DATA FindData;
     HANDLE hError;
     int FileCount = 0;
     char FilePathName[LEN];

     // 构造路径
     char FullPathName[LEN];
     
     strcpy(FilePathName, Path);
     strcat(FilePathName, "\\*.*");

     hError = FindFirstFile(FilePathName, &FindData);

     if (hError == INVALID_HANDLE_VALUE)
	 {
         printf("搜索失败!");
         return 0;
	 }

     while(::FindNextFile(hError, &FindData))
	 {
         // 过虑.和..
         if (strcmp(FindData.cFileName, ".") == 0 
             || strcmp(FindData.cFileName, "..") == 0 )
		 {
            continue;
		 }
   
         // 构造完整路径
        wsprintf(FullPathName, "%s\\%s\\%s", Path,FindData.cFileName,FindData.dwFileAttributes);
		
        FileCount++;
        // 输出本级的文件
        printf("\n---%d  %s  ", FileCount, FullPathName);
		

		fprintf(fp, "%s\n", FullPathName);
 
        if (FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
		{
             printf("<Dir>");
             DirectoryList(FullPathName);
		}
        
	 }
	 
     return 0;
}
 
int main(int argc, char **argv)
{
	fprintf(fp, "%s\t %s\n","文件名","文件大小");

	char search[50];
    printf("请输入文件父路径:比如:\nD:\\123\n");
    scanf("%s",search);
    DirectoryList(search);

	fclose(fp);

    system("PAUSE");    
 
    return 0;
}


© 著作权归作者所有

共有 人打赏支持
节操狗
粉丝 0
博文 8
码字总数 5547
作品 0
西安
程序员
私信 提问
VBS脚本:删除扩展名不是*.h、*.c、*.cpp的全部文件

用VC6.0写了好多代码,编译过后生成了很多不想要的文件。于是我写了下面这个脚本,只把里面的代码文件留下。 脚本编写的思想如下: 先进行输入合法性检查 脚本使用例程CleanFolder遍历一个文...

北风其凉
2014/08/29
0
0
C++ STL 遍历 map 的时候如何删除其中的 element

我们通过map的erase(iterator it)方法删除元素的时候,如果此时erase处于遍历map的代码中,那么调用erase就需要小心一些。因为erase会导致输入参数iterator变的无效,从而影响后续的it++遍历...

鉴客
2011/10/13
7.1K
2
Effective STL - 容器

STL(standard template library)提供了一组表示容器,迭代器,函数对象和算法的模板。容器是一个与数组类似的单元,可以存若干个值。 STL容器是同质的,即存储的值的类型相同;算法是完成特...

積木leayn
2013/10/07
0
0
C语言/C++编程学习数据结构与算法 通俗易懂讲解 快速排序

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/20
0
0
运行MFC程序提示没有找到MFC42D.DLL文件的解决方法

运行MFC AppWizard(exe)程序,汇编成功,可是运行时,出现错误:“没有找到MFC42D.DLL,因此这个应用程序未能启动.重新安装应用程序可能会修复此问题. ” 解决方案为:出现上述提示的原因是...

lcniuren33
2012/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day02:管道符、shell及环境变量

1、管道符:"|" 用于将前一个指令的输出作为后一个指令的输入,且管道符后面跟的是命令(针对文档的操作):cat less head tail grep cut sort wc uniq tee tr split sed awk等) [root@localho...

芬野de博客
2分钟前
0
0
Kubernetes系列——Kubernetes 组件、对象(二)

一、Kubernetes 组件 介绍了Kubernetes集群所需的各种二进制组件。 Master 组件 Master组件提供集群的管理控制中心。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一...

吴伟祥
11分钟前
0
0
Flink-数据流编程模型

1、抽象等级 Flink提供了不同级别的抽象来开发流/批处理应用程序。 1) 低层级的抽象 最低层次的抽象仅仅提供有状态流。它通过Process函数嵌入到DataStream API中。它允许用户自由地处理来自一...

liwei2000
29分钟前
1
0
Java开发Swing实战JFrame和JTabbedPane容器的用法详细解析

概述: 项目是一个桌面程序,涉及标签和按钮组件、布局管理器组件、面板组件、列表框和下拉框组件等组件,以及Swing事件处理机制。 下面先从最基础的界面开始。 /** * @author: lishuai * @...

金铭鼎IT教育
34分钟前
10
0
flask 之旅

环境 为了正确地跑起来,你的应用需要依赖许多不同的软件。 就算是再怎么否认这一点的人,也无法否认至少需要依赖Flask本身。 你的应用的运行环境,在当你想要让它跑起来时,是至关重要的。 ...

hblt-j
35分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部