首页
社区
课程
招聘
[旧帖] [原创]遍历读取文件夹与文件算法 0.00雪花
2010-3-26 15:06 2270

[旧帖] [原创]遍历读取文件夹与文件算法 0.00雪花

2010-3-26 15:06
2270
一直对控制台应用程序情有独钟,之前写了这个 遍历读取文件夹和文件 算法。希望能得到一个邀请码。附上附件。谢谢。。

#include "stdafx.h"
#include <windows.h>
#include <iostream>

using namespace std;

//============声明遍历文件与文件夹的函数===============//
void TraverseFile(char *FileDirectory);

//====================main函数======================//
int main(int argc, char* argv[])
{
        system("title 文件遍历器   By: baoss");
        cout<<"Please input a file directory: ";
        char FileDirectory[MAX_PATH];
        cin>>FileDirectory;

        //====开始调用====//
        TraverseFile(FileDirectory);
        system("pause");
        return 0;
}

//============声明遍历文件与文件夹的函数===============//
void TraverseFile(char *FileDirectory)
{
        char szFileName[MAX_PATH];
        strcpy(szFileName,FileDirectory);
        strcat(szFileName,"\\*.*");

        WIN32_FIND_DATA FindData;
        HANDLE hFile;
        hFile = FindFirstFile(szFileName,&FindData);

        if(hFile != INVALID_HANDLE_VALUE)
        {
                if(FindData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
                {
                        if((strcmp(FindData.cFileName,".") != 0) &&  (strcmp(FindData.cFileName,"..") != 0))
                        {
                                char Dir[MAX_PATH];
                                strcpy(Dir,(char *)FileDirectory);
                                strcat(Dir,"\\");
                                strcat(Dir,(char *)FindData.cFileName);
                                cout<<"目录: "<<Dir<<endl;
                        }
                       
                }
                else
                {
                        char FileDir[MAX_PATH];
                        strcpy(FileDir,(char *)FileDirectory);
                        strcat(FileDir,"\\");
                        strcat(FileDir,(char *)FindData.cFileName);
                        cout<<"文件: "<<FileDir<<endl;
                }
               
                while (FindNextFile(hFile,&FindData))
                {
                        if(FindData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
                        {
                                if((strcmp(FindData.cFileName,".") != 0) &&  (strcmp(FindData.cFileName,"..") != 0))
                                {
                                        char Dir[MAX_PATH];
                                        strcpy(Dir,(char *)FileDirectory);
                                        strcat(Dir,"\\");
                                        strcat(Dir,(char *)FindData.cFileName);
                                        cout<<"目录: "<<Dir<<endl;
                                       
                                //==递归调用==//
                                        TraverseFile(Dir);
                                }
                               
                        }
                        else
                        {
                                char FileDir[MAX_PATH];
                                strcpy(FileDir,(char *)FileDirectory);
                                strcat(FileDir,"\\");
                                strcat(FileDir,(char *)FindData.cFileName);
                                cout<<"文件: "<<FileDir<<endl;
                        }
                }
                FindClose( hFile );

               
        }
        else
        {
                cout<<"Invalid file directory !"<<endl;
        }

}

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (5)
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wisgtalt 2010-3-26 15:08
2
0
已查看过,但我搞不定邀请码.呵~
不好意思
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wisgtalt 2010-3-26 15:09
3
0
查了一下.说是你自己赚到100Kx就可以自己转正了.呵~
你努力吧.
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuxiaomina 2010-3-26 15:26
4
0
可麽可以快速获得kx
雪    币: 602
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kangcin 2010-3-26 17:18
5
0
这种代码貌似很多啊
雪    币: 1849
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
newine 2010-3-26 17:40
6
0
我初学者,学习个。
游客
登录 | 注册 方可回帖
返回