您好,登錄后才能下訂單哦!
小編這次要給大家分享的是C++怎么遍歷文件夾目錄,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
一、方法一:VS2019
// dirlist.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h" #include <string> #include <io.h> #include <vector> #include <iostream> using namespace std; /************************************************************************/ /* 獲取文件夾下所有文件名 輸入: path : 文件夾路徑 exd : 所要獲取的文件名后綴,如jpg、png等;如果希望獲取所有 文件名, exd = ""或"*" 輸出: files : 獲取的文件名列表 shao, 20140707 */ /************************************************************************/ void getFiles(string path, string exd, vector<string>& files) { //cout << "getFiles()" << path<< endl; //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string pathName, exdName; if (0 != strcmp(exd.c_str(), "")) { exdName = "\\*." + exd; } else { exdName = "\\*"; } if ((hFile = _findfirst(pathName.assign(path).append(exdName).c_str(), &fileinfo)) != -1) { do { //cout << fileinfo.name << endl; //如果是文件夾中仍有文件夾,迭代之 //如果不是,加入列表 if ((fileinfo.attrib & _A_SUBDIR)) { if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) getFiles(pathName.assign(path).append("\\").append(fileinfo.name), exd, files); } else { if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); } } while (_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } void main() { cout << "start list" << endl; vector<string> files; const char* filePath = "D:\\opencv_4.1.0\\newbuild\\install\\x64\\vc16\\lib"; //獲取該路徑下的所有jpg文件 //getFiles(filePath, "jpg", files); //獲取該路徑下的所有lib文件 getFiles(filePath, "lib", files); //列表文件輸出路徑 FILE* fp; fopen_s(&fp, "d:\\dir_list.txt", "w"); int size = files.size(); for (int i = 0; i < size; i++) { cout << files[i] << endl; fputs(files[i].c_str(), fp); fputs("\n", fp); } fclose(fp); cout << "end list" << endl; getchar(); }
二、方法二:CMD
win+r調出“運行”窗口并輸出cmd
輸入:cd /d D:\opencv_4.1.0\newbuild\install\x64\vc16\lib 回車 (填自己的路徑)
輸入:dir /b *.lib *>0.txt 回車
看完這篇關于C++怎么遍歷文件夾目錄的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。