int count_file_num_in_a_folder( char* target_folder ){ int count=-1; //檔案的counter char szDir[128]; //要讀取的資料夾的位址。 WIN32_FIND_DATA FileData; //指著目前讀取到的File的指標。 HANDLE hList; //指著要讀取的資料夾的指標。 sprintf(szDir, "%s\\*",target_folder ); if ( (hList = FindFirstFile(szDir, &FileData))==INVALID_HANDLE_VALUE ) cout<<"No directories be found."<<endl<<endl; else { while (1) { if (!FindNextFile(hList, &FileData)) { if (GetLastError() == ERROR_NO_MORE_FILES) break; } count++; } } FindClose(hList); return count; }用途:
計算指定資料夾裡的檔案個數。
用法:
/*
char folder_adderss[128]="..\\testing_folder\\";
//testing_folder為指定資料夾的名稱
count_file_num_in_a_folder(folder_address);
*/
附註:
若testing_folder裡面有5個資料夾、3個檔案,則此函式會回傳5+3=8。而count會設成"-1"是因為FindFirstFile"會將[上層目錄]也是為檔案,因此若不想將[上層目錄]也視為檔案的話記得要將count設成"-1";否則,則設為0。