1. 程式人生 > >C++ 遍歷目錄所有檔案並判斷是否為目錄

C++ 遍歷目錄所有檔案並判斷是否為目錄

1. 思路

  使用FindFirstFile、FindNextFile函式,來遍歷目錄。結果儲存在WIN32_FIND_DATA結構體中。將查詢結果的dwFileAttributes和FILE_ATTRIBUTE_DIRECTORY取與操作,判斷是否為目錄。

2. 示例程式碼

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

using namespace std;

int main()
{
    HANDLE hRes;
    WIN32_FIND_DATA data;
    LPCSTR IpFileName;
    char
tmpDir[MAX_PATH] = ""; strcat(tmpDir,"E:\\ubuntuShare"); strcat(tmpDir,"\\*"); IpFileName = tmpDir; hRes = FindFirstFileEx(IpFileName,FindExInfoStandard,&data,FindExSearchNameMatch,NULL,0); while(FindNextFile(hRes,&data)) { if(strcmp(data.cFileName,".") ==0
|| strcmp(data.cFileName,"..") == 0) continue; if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { printf("%s 是目錄.\n",data.cFileName); } else { printf("%s 是檔案.\n",data.cFileName); } } return 0; }