1、64(路径要到最里层文件夹)
//path:文件路径 files:存文件名的vector suffix:文件后缀,不用加点
void get_file_name(string path, vector<string>& files, string suffix)
{
__int64 Handle;
struct __finddata64_t FileInfo;
string p;
string suffix2 = "\\*." + suffix;
if ((Handle = _findfirst64(p.assign(path).append(suffix2).c_str(), &FileInfo)) != -1)
{
do{
files.push_back(p.assign(path).append("\\").append(FileInfo.name));
} while (_findnext64(Handle, &FileInfo) == 0);
_findclose(Handle);
}
}
2、32(参数意义一致,非原创,没找到原文链接,侵权删,可获取子文件夹内的文件)
void get_file_name(string path, vector<string>& files, string suffix)
{
//获取文件名列表放到参数中的vector
long hFile = 0;
struct _finddata_t fileinfo;
string p;
//cout << path<< endl;
string suffix2 = "\\*." + suffix;
if ((hFile = _findfirst(p.assign(path).append(suffix2).c_str(), &fileinfo)) != -1)
{
//cout << "sub" << endl;
do{
if ((fileinfo.attrib & _A_SUBDIR))
{
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
get_file_name(p.assign(path).append("\\").append(fileinfo.name), files, suffix);
}
else
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name));
}
} while (_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
3、Matlab
fileFolder=fullfile('E:\test\0001');
dirOutput=dir(fullfile(fileFolder,'*.jpg'));
fileNames={dirOutput.name}';