您的位置:首页 > 其它

windows中遍历指定文件夹下的所有子文件夹

2016-05-23 21:31 399 查看
前面我给出了windows下面指定文件夹下面指定类型文件的遍历程序,这里,再给出遍历指定文件夹下的所有子文件夹的程序:

#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 _tmain(int argc, _TCHAR* argv[])
{
string folder = "c://OpenCV";
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;
}

from: http://blog.csdn.net/carson2005/article/details/6327375
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息