Windows下:
#include <windows.h> //加入头文件
void getDirFiles(const char* source,vector<string> &names)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind=FindFirstFile(source,&FindFileData);
FindNextFile(hFind,&FindFileData);
while(1)
{
FindNextFile(hFind,&FindFileData);
string s=FindFileData.cFileName;
if(names.size()&&names[names.size()-1]==s)
{
break;
}
else
{
names.push_back(s);
}
}
}
Linux下:
#include<dirent.h> //加入头文件
void getDirFiles(const char *source,vector<string> &files)
{
DIR *dir;
struct dirent *dirent;
string filename;
if((dir=opendir(source)) == NULL)
{
cout<<"can't open file!"<<endl;
return;
}
while((dirent = readdir(dir)) != NULL)
{
// dirent->d_type为4时,表示访问子文件夹;为8时表示访问文件
if(dirent->d_type == 8 && strlen(dirent->d_name) > 2)
{
files.push_back(dirent->d_name);
// cout<<dirent->d_name<<endl;
}
}
}
最简便的是用Python:
import os
def getFileName(path):
files=set([])
for i in os.listdir(path):
files.add(i)
return files