一、引子
朋友提出这样一个需求:快速获得某个文件夹(及其子文件夹)内全部的文件名。
事情的起因是这样的,他正在按公司的要求整理一个项目的佐证材料,按照不同的检查项,应把相关材料放在不同的文件夹中。但是最终还是需要一份所有材料的清单。由于佐证材料经常需要更新和变动,他想要一种简单的方法快速获得这份清单(记录每个文件夹下的所有文件名)。
二、思路分析
(一)我最初想到的方法是直接在DOS模式下找到相应文件夹,然后输入:
虽然所有文件和文件夹都很清晰地显示出来,但并未达到朋友的要求。主要是因为:
1. 上图的输出是先把一个层级内的全部文件和文件夹都输出,然后再把每个文件夹内下一层级的内容逐次输出。朋友希望像树形展开图那样地直观体现文件层级。
2. 存在.和..这样无意义的文件夹信息,而且日期、文件大小并不是朋友想要的信息。
(二)采用编程实现
A. 程序逻辑:很简单,就是一个递归。
1. 给定起始目录
2. 递归函数
首先判断输入的文件名是文件还是文件夹
2.1 若为文件,则输出文件名
2.2 若为文件夹,则首先输出文件夹名,并将该文件
朋友提出这样一个需求:快速获得某个文件夹(及其子文件夹)内全部的文件名。
事情的起因是这样的,他正在按公司的要求整理一个项目的佐证材料,按照不同的检查项,应把相关材料放在不同的文件夹中。但是最终还是需要一份所有材料的清单。由于佐证材料经常需要更新和变动,他想要一种简单的方法快速获得这份清单(记录每个文件夹下的所有文件名)。
二、思路分析
(一)我最初想到的方法是直接在DOS模式下找到相应文件夹,然后输入:
dir /s >filesout.txt生成的结果如下:
虽然所有文件和文件夹都很清晰地显示出来,但并未达到朋友的要求。主要是因为:
1. 上图的输出是先把一个层级内的全部文件和文件夹都输出,然后再把每个文件夹内下一层级的内容逐次输出。朋友希望像树形展开图那样地直观体现文件层级。
2. 存在.和..这样无意义的文件夹信息,而且日期、文件大小并不是朋友想要的信息。
(二)采用编程实现
A. 程序逻辑:很简单,就是一个递归。
1. 给定起始目录
2. 递归函数
首先判断输入的文件名是文件还是文件夹
2.1 若为文件,则输出文件名
2.2 若为文件夹,则首先输出文件夹名,并将该文件

本文介绍了如何使用C语言结合Windows API,实现Windows7环境下文件和文件夹的递归遍历,生成详细的文件清单。通过实例展示了具体的操作步骤和最终生成的清单效果。
最低0.47元/天 解锁文章
1547

被折叠的 条评论
为什么被折叠?



