前言
公司主營業(yè)務:網站建設、成都網站建設、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現互聯網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯建站推出豐澤免費做網站回饋大家。
前段時間做項目需要讀取一個文件夾里面所有的txt文件,查詢資料后得到以下實現方法:
首先了解一下這個結構體
struct _finddata_t {
unsigned attrib;
time_t time_create;
time_t time_access;
time_t time_write;
_fsize_t size;
char name[260];
};其中各成員變量的含義如下:
查找文件需要用到_findfirst 和 _findnext 兩個函數,這兩個函數包含在io.h庫中
1、_findfirst函數:long _findfirst(const char *, struct _finddata_t *);
第一個參數為文件名,可以用"*.*"來查找所有文件,也可以用"*.cpp"來查找.cpp文件。第二個參數是_finddata_t結構體指針。若查找成功,返回文件句柄,若失敗,返回-1。
2、_findnext函數:int _findnext(long, struct _finddata_t *);
第一個參數為文件句柄,第二個參數同樣為_finddata_t結構體指針。若查找成功,返回0,失敗返回-1。
3、_findclose()函數:int _findclose(long);
只有一個參數,文件句柄。若關閉成功返回0,失敗返回-1。
代碼及實現
需要輸出的文件

運行結果

代碼
#include <iostream>
#include <string>
#include <fstream>
#include <io.h>
using namespace std
void GetLineAndPrint(string in_name)
{
ifstream fin(in_name);
if (!fin)
{
cerr << "open file error" << endl;
exit(-1);
}
string str;
while (getline(fin, str))
{
cout << str << endl;
}
}
int main()
{
struct _finddata_t fileinfo;
string in_path;
string in_name;
cout << "輸入文件夾路徑:" ;
cin >> in_path;
string curr = in_path + "\\*.txt";
long handle;
if ((handle = _findfirst(curr.c_str(), &fileinfo)) == -1L)
{
cout << "沒有找到匹配文件!" << endl;
return 0;
}
else
{
in_name = in_path + "\\" + fileinfo.name;
GetLineAndPrint(in_name);
while (!(_findnext(handle, &fileinfo)))
{
in_name = in_path + "\\" + fileinfo.name;
GetLineAndPrint(in_name);
}
_findclose(handle);
}
}注:代碼在vs2017中編譯通過。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯的支持。
參考資料:https://www.jb51.net/article/142285.htm
原文鏈接:https://www.cnblogs.com/bigyang/p/8547038.html
網站題目:C++從一個文件夾中讀出所有txt文件的方法示例
網站URL:http://www.chinadenli.net/article18/gcegdp.html
成都網站建設公司_創(chuàng)新互聯,為您提供企業(yè)建站、定制網站、關鍵詞優(yōu)化、做網站、動態(tài)網站、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯