C++ 遍歷目錄所有檔案並判斷是否為目錄
阿新 • • 發佈:2019-02-16
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;
}