您的位置:首页 > 编程语言 > C语言/C++

c++遍历文件夹

2016-07-15 21:52 302 查看
#include <Windows.h>

#include <stdio.h>

#include <string>

#include <iostream>

#include <io.h>

void FindFile(char *szPath);

using namespace std;

int main()

{
FindFile("F:\\window安装包");
system("pause");
return 0;

}

//函数功能: 扫描查找文件

//参数说明:

//szPath:需要扫描的目录

void FindFile(char *szPath)

{

WIN32_FIND_DATAA FindFileData;

char szFileToFind[MAX_PATH] = {0};

lstrcpyA(szFileToFind, szPath);

lstrcatA(szFileToFind, "\\*.*");

cout<<szPath;

printf("\n");

//查找目录下所有文件

HANDLE hFile = FindFirstFileA(szFileToFind,&FindFileData);

if (hFile == INVALID_HANDLE_VALUE)return;

do 

{

char szNewPath[MAX_PATH] = {0};

lstrcpyA(szNewPath, szPath);

if(szPath=="*.")

{

cout<<szNewPath;

printf("\n");

}

//判断是否是目录

if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)

{

//判断是否是.或..
if (!lstrcmpA(FindFileData.cFileName, ".") || !lstrcmpA(FindFileData.cFileName, ".."))
{

}
else
{

//递归查找下级目录
lstrcatA(szNewPath, "\\");

        lstrcatA(szNewPath, FindFileData.cFileName);

        FindFile(szNewPath);
if (szNewPath=="*.")
{
cout<<szNewPath;
printf("\n");
}
}

}

else

{

//处理查找到的文件
char szExe[MAX_PATH] = {0};

    lstrcpyA(szExe, szNewPath);

    lstrcatA(szExe, "\\");

    lstrcatA(szExe, FindFileData.cFileName);

    FindFile(szExe);

    cout<<szExe;

    printf("\n");

}

} while (FindNextFileA(hFile, &FindFileData));

FindClose(hFile);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ c语言 文件