服务器之家

服务器之家 > 正文

C++遍历文件夹目录的方法

时间:2021-08-31 15:05     来源/作者:Kratze-Jayue

一、方法一:VS2019

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// 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++遍历文件夹目录的方法的文章就介绍到这了,更多相关C++遍历文件夹目录内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/Jayuee/article/details/105536975

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部