C++ 遍歷文件夾下所有文件

需要用到<io.h>中的結構體_finddata_t ,和函數_findfirst(), _findnext(), _findclose()

#include <io.h>
#include <iostream>
using namespace std;

int main(){
    //定義結構體,在查找時,該結構體中存儲了查找到文件相應的屬性
    _finddata_t file;
    //查找所有文件,如果查找失敗,則返回-1;查找成功,返回相應的句柄
    int k;
    long HANDLE;
    k = HANDLE = _findfirst("*.*" , &file);
    //根據相應的句柄,可以依次查找下一個文件;直到無法查詢到新的文件爲止
    while(k != -1){
        cout << file.name << endl;
        k = _findnext(HANDLE , &file);
    }
    _findclose(HANDLE);
    return 0;
}

上面的程序可以簡化:

#include <io.h>
#include <iostream>
using namespace std;

int main(){
    //定義結構體,在查找時,該結構體中存儲了查找到文件相應的屬性
    _finddata_t file;
    //查找所有文件,如果查找失敗,則返回-1;查找成功,返回相應的句柄
    long HANDLE;
    HANDLE = _findfirst("*.*", &file);
    //根據相應的句柄,可以依次查找下一個文件;直到無法查詢到新的文件爲止
    do{
        cout << file.name << endl;
    }while (!_findnext(HANDLE, &file));
    _findclose(HANDLE);
    return 0;
}

參考資料:
[1]. 新浪博客:用 _findfirst 和 _findnext 查找文件
[2]. _finddata_t:結構體內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章