【VS开发】C语言遍历文件夹

// StdCFIndAllFiles.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"



#include <iostream>
#include <windows.h>
#include <cstring>

using namespace std;

void ListFile(char* szDir)

{
    char  szTempDir[MAX_PATH+1];
    strcpy(szTempDir,szDir);
    strcat(szTempDir,"*");
    HANDLE  hFindFile;
    WIN32_FIND_DATA  FileData;

    hFindFile = FindFirstFile(szTempDir,&FileData);

    if( hFindFile == INVALID_HANDLE_VALUE )
    {
        return ;
    }
    else
    {
        do
        {
            if( (FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
                && strcmp(FileData.cFileName,".")
                && strcmp(FileData.cFileName,".."))

            {
                char szNewDir[MAX_PATH+1];
                strcpy(szNewDir,szDir);
                strcat(szNewDir,FileData.cFileName);
                strcat(szNewDir,"\");
                ListFile(szNewDir);
            }
            else
            {
                cout<<szDir<<FileData.cFileName<<endl;
            }
        }
        while(FindNextFile(hFindFile,&FileData));       
        FindClose(hFindFile);
        return ;
    }

}

int main()
{
    char   szPath[MAX_PATH+1];
    while(cin>>szPath)
    {
        if(szPath[strlen(szPath)-1]!='\')
            strcat(szPath,"\");
        ListFile(szPath);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/huty/p/8518824.html