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
#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
相关文章推荐
- 如何重装TCP/IP协议
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- 从Windows系统下访问Linux分区相关软件
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 使用Windows原生命令一键清空剪贴板
- 利用开源软件打造自己的全功能远程工具
- Windows 8虚拟机不能全屏的解决方法
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- 微软镜像下载
- windows server域用户提升到本地更高权限组中的方法
- 使用命令修改注册表键值及权限
- 通过手机、电脑远程开关机,Windows和linux机手机,电脑相互控制