【C++】获取当前文件夹内的所有文件

xiaoxiao2021-02-28  91

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}';

转载请注明原文地址: https://www.6miu.com/read-55477.html

最新回复(0)