C++遍歷文件夾文件(Qt和Windows兩種遍歷)

**
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章