[Windowns C]递归遍历指定目录下的子目录和文件

/*
	功能:演示了利用C语言递归遍历指定目录下的子目录和文件!
	说明:经修改也可以搜索文件名符合特定格式的文件,如修改“\\*.*”为“\\*.log”
*/
#include  
#include  
#include 

using namespace std;

void filesearch(string path, int layer)
{ 
	struct _finddata_t filefind; 
	string curr = path + "\\*.*";							// 修改此处改变搜索条件
	int done = 0, i, handle; 
	if((handle = _findfirst(curr.c_str(), &filefind)) != -1)
	{
		while(!(done = _findnext(handle, &filefind)))
		{ 
			if(strcmp(filefind.name, "..") == 0)
				continue;
			for(i = 0;i 

 

运行结果如:

[File]: 20111010.log
[File]: 20111011.log
[File]: 20111012.log
[File]: 20111013.log
[File]: 20111014.log
[Dir]:  demo10_1
        [Dir]:  Debug
                [File]: demo10_1.exe
                [File]: demo10_1.obj
                [File]: demo10_1.pdb
                [File]: demo10_1.sbr
                [File]: vc60.pdb
        [File]: demo10_1.c
        [File]: demo10_1.dsp
        [File]: demo10_1.dsw
        [File]: demo10_1.ncb
        [File]: demo10_1.opt
        [File]: demo10_1.pc
        [File]: demo10_1.plg
        [Dir]:  proc
        [File]: sqlnet.log
[Dir]:  demo10_2
        [Dir]:  Debug
                [File]: demo10_2.exe
                [File]: demo10_2.obj
                [File]: demo10_2.pdb
                [File]: vc60.pdb
        [File]: demo10_2.c
        [File]: demo10_2.dsp
        [File]: demo10_2.dsw
        [File]: demo10_2.ncb
        [File]: demo10_2.opt
        [File]: demo10_2.pc
        [File]: demo10_2.plg
        [Dir]:  proc
[Dir]:  demo2
        [Dir]:  Debug
                [File]: demo2.exe
                [File]: demo2.obj
                [File]: demo2.pdb
                [File]: demo2.sbr
                [File]: vc60.pdb
        [File]: demo2.c
        [File]: demo2.dsp
        [File]: demo2.dsw
        [File]: demo2.ncb
        [File]: demo2.opt
        [File]: demo2.pc
        [File]: demo2.plg
        [Dir]:  proc
        [File]: sqlnet.log
[Dir]:  demo6_2
        [Dir]:  Debug
                [File]: demo6_2.exe
                [File]: demo6_2.pdb
                [File]: m.obj
                [File]: vc60.pdb
        [File]: demo6_2.dsp
        [File]: demo6_2.dsw
        [File]: demo6_2.ncb
        [File]: demo6_2.opt
        [File]: demo6_2.plg
        [File]: m.c
        [File]: m.pc
        [Dir]:  proc
[File]: pre_20111015.log
请按任意键继续. . .

你可能感兴趣的:(C)