**
C++遍歷文件夾文件(Qt和Windows兩種遍歷)**
Qt遍歷文件夾文件
//利用Qt遍歷
QStringList ErgodicFile::fErgodicFile(const QString &config)
{
//判斷路徑是否存在
QDir dir(config);
if(!dir.exists())
{
return QStringList();
}
//獲取所選文件類型過濾器
QStringList filters;
// 文件過濾
filters<<QString("*.exe")<<QString("*.dll")<<QString("*.tif")<<QString("*.png");
//定義迭代器並設置過濾器
QDirIterator dir_iterator(config,
filters,
QDir::Files | QDir::NoSymLinks,
QDirIterator::Subdirectories);
QStringList string_list;
while(dir_iterator.hasNext())
{
dir_iterator.next();
QFileInfo file_info = dir_iterator.fileInfo();
QString absolute_file_path = file_info.absoluteFilePath();
string_list.append(absolute_file_path);
}
for(int nu=0;nu<string_list.length();nu++)
{
qDebug() << string_list[nu];
}
return string_list;
}
windows遍歷文件夾文件
//利用windows遍歷
int ErgodicFile::fErgodicFile(const QString &config)
{
//目標文件夾路徑
std::string inPath = "./*.tif";//遍歷文件夾下的所有.tif文件
//用於查找的句柄
long handle;
struct _finddata_t fileinfo;
//第一次查找
handle = _findfirst(inPath.c_str(), &fileinfo);
if (handle == -1)
return -1;
do
{
//找到的文件的文件名
printf("%s\n", fileinfo.name);
} while (!_findnext(handle, &fileinfo));
_findclose(handle);
system("pause");
return 0;
}