windows下获得一个指定文件路径下的所有文件
// GetAllFiles.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <algorithm>
#ifdef WIN32
#include <direct.h>
#include <io.h>
#endif
using namespace std;
vector<string> getFiles(string cate_dir)
{
vector<string> files;//存放文件名
#ifdef WIN32
_finddata_t file;
long lf;
//输入文件夹路径
if ((lf = _findfirst(cate_dir.c_str(), &file)) == -1) {
std::cout << cate_dir << " not found!!!" << endl;
}
else {
while (_findnext(lf, &file) == 0) {
//输出文件名
//cout<<file.name<<endl;
if (strcmp(file.name, ".") == 0 || strcmp(file.name, "..") == 0)
continue;
files.push_back(file.name);
}
}
_findclose(lf);
#endif
//排序,按从小到大排序
sort(files.begin(), files.end());
return files;
}
int main()
{
char current_address[100];
memset(current_address, 0, 100);
getcwd(current_address, 100); //获取当前路径
cout << current_address << endl;
strcat(current_address, "\\*");
vector<string> files = getFiles((string)current_address);
for (int i = 0; i<files.size(); i++)
{
cout << files[i] << endl;
}
return 0;
}