windows文件名排序
#include <io.h>
void GetFiles(string strPath, vector<string>& vec)
{
strPath += "*.csv";
_finddata_t fileInfo;
long long handle = _findfirst(strPath.c_str(), &fileInfo);
if (handle == -1L)
{
cerr << "无文件" << endl;
return ;
}
do
{
string str = fileInfo.name;
vec.push_back(str);
} while (_findnext(handle, &fileInfo) == 0);
_findclose(handle);
}
Linux 自然序
void GetFiles1(string strPath, vector<string>& vec)
{
struct dirent* direntp;
DIR* dirp = opendir(strPath.c_str());
if (dirp == NULL)
{
return;
}
while ((direntp = readdir(dirp)) != NULL)
{
vec.push_back(direntp->d_name);
}
closedir(dirp);
}
Linux 文件名排序
void GetFiles2(string strPath, vector<string>& vec)
{
struct dirent** namelist;
int n = scandir(strPath.c_str(), &namelist,NULL, alphasort);
if (n == -1)
{
return;
}
int i = 0;
while (i<n)
{
if(namelist[i]->d_name[0]!='.')
{
vec.push_back(namelist[i]->d_name);
}
i++;
}
free(namelist);
}