#include "stdafx.h"
#include "Windows.h"
#include <vector>
#include <string>
#include "iostream"
using namespace std;
int GetSubFolders(string& folder, vector<string>& subFolders )
{
subFolders.clear();
WIN32_FIND_DATAA fileFindData;
string nameWC = folder + "//*";
HANDLE hFind = ::FindFirstFileA(nameWC.c_str(), &fileFindData);
if (hFind == INVALID_HANDLE_VALUE)
{
cout<<"folder path error...."<<endl;
system("pause");
return 0;
}
do
{
if (fileFindData.cFileName[0] == ‘.‘)
{
continue; //filter the ‘..‘ and ‘.‘ in the path
}
if (fileFindData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
subFolders.push_back(folder+"//"+fileFindData.cFileName);
}
}while(::FindNextFileA(hFind, &fileFindData));
FindClose(hFind);
return (int)subFolders.size();
}
int main(int argc, char* argv[])
{
string folder = "E:";
vector<string> subDir;
int count = GetSubFolders(folder, subDir);
cout<<"count = "<<count<<endl;
for (int i=0; i<count; i++)
{
cout<<subDir[i].c_str()<<endl;
}
system("pause");
return 0;
}
//运行后,遍历E盘中的所有文件目录,并打印所有目录名