C++遍歷文件夾目錄的方法
一、方法一:VS2019
// dirlist.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//#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);
//獲取該路徑下的所有l(wèi)ib文件
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調(diào)出“運(yùn)行”窗口并輸出cmd
輸入:cd /d D:\opencv_4.1.0\newbuild\install\x64\vc16\lib 回車(chē) (填自己的路徑)
輸入:dir /b *.lib *>0.txt 回車(chē)
到此這篇關(guān)于C++遍歷文件夾目錄的方法的文章就介紹到這了,更多相關(guān)C++遍歷文件夾目錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言結(jié)構(gòu)體(struct)的詳細(xì)講解
C語(yǔ)言中,結(jié)構(gòu)體類(lèi)型屬于一種構(gòu)造類(lèi)型(其他的構(gòu)造類(lèi)型還有:數(shù)組類(lèi)型,聯(lián)合類(lèi)型),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言結(jié)構(gòu)體(struct)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
Matlab利用prim算法實(shí)現(xiàn)迷宮的生成
普里姆算法(Prim算法),圖論中的一種算法,可在加權(quán)連通圖里搜索最小生成樹(shù)。本文將利用prim算法迷宮生成及其藝術(shù)渲染,感興趣的可以了解一下2022-10-10
Effective C++ 入門(mén)學(xué)習(xí)筆記
這篇文章主要介紹了Effective C++ 入門(mén)學(xué)習(xí)筆記,需要的朋友可以參考下2023-08-08
C語(yǔ)言實(shí)現(xiàn)靜態(tài)鏈表的方法
分享一段代碼,一個(gè)靜態(tài)鏈表的C語(yǔ)言實(shí)現(xiàn),其中包含著一種簡(jiǎn)單的內(nèi)存管理策略:固定大小的鏈?zhǔn)焦芾怼?/div> 2013-03-03
C語(yǔ)言讀取寫(xiě)入ini配置文件的方法實(shí)現(xiàn)
本文主要介紹了C語(yǔ)言讀取寫(xiě)入ini配置文件的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
深入理解:Java是類(lèi)型安全的語(yǔ)言,而C++是非類(lèi)型安全的語(yǔ)言
本篇文章是對(duì)Java是類(lèi)型安全的語(yǔ)言,而C++是非類(lèi)型安全的語(yǔ)言進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
C++實(shí)現(xiàn)線性表有序表的合并方式(順序表實(shí)現(xiàn)and鏈表實(shí)現(xiàn))
這篇文章主要介紹了C++實(shí)現(xiàn)線性表有序表的合并方式(順序表實(shí)現(xiàn)and鏈表實(shí)現(xiàn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
C語(yǔ)言超詳細(xì)講解結(jié)構(gòu)體與聯(lián)合體的使用
結(jié)構(gòu)體和聯(lián)合體用于描述事物的屬性,如一只鳥(niǎo)的信息,可能包括它的品種,體重,顏色,年齡等,接下來(lái)大家一起來(lái)詳細(xì)看看吧2022-05-05最新評(píng)論

