C++实现读取特定路径下文件夹及文件名的方法
来源:互联网 发布:淘宝nike专卖店 编辑:程序博客网 时间:2024/06/05 12:39
本文所述实例代码主要实现读取给定路径下的所有文件夹名称或所有带后缀的文件名的功能。具体解决方法如下:
主要用到了以下几个头文件(类):io.h, fstream, string。
首先,读取某给定路径下所有文件夹与文件名称,并带完整路径。实现代码如下:
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
void
getAllFiles( string path, vector<string>& files)
{
//文件句柄
long
hFile = 0;
//文件信息
struct
_finddata_t
fileinfo;
string p;
if
((hFile = _findfirst(p.assign(path).append(
"\\*"
).c_str(),&fileinfo)) != -1)
{
do
{
if
((fileinfo.attrib & _A_SUBDIR))
{
if
(
strcmp
(fileinfo.name,
"."
) != 0 &&
strcmp
(fileinfo.name,
".."
) != 0)
{
files.push_back(p.assign(path).append(
"\\"
).append(fileinfo.name) );
getFilesall( p.assign(path).append(
"\\"
).append(fileinfo.name), files );
}
}
else
{
files.push_back(p.assign(path).append(
"\\"
).append(fileinfo.name) );
}
}
while
(_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
该函数有两个参数,第一个为路径字符串(string类型,最好为绝对路径);第二个参数为文件夹与文件名称存储变量(vector类型,引用传递)。
在主函数中调用格式(并将结果保存在文件"AllFiles.txt"中,第一行为总数):
1
2
3
4
5
6
7
8
9
10
11
12
char
* filePath =
"E:\\YunShi"
;
vector<string> files;
char
* distAll =
"AllFiles.txt"
;
getFilesall(filePath, files);
ofstream ofn(distAll);
int
size = files.size();
ofn<<size<<endl;
for
(
int
i = 0;i<size;i++)
{
ofn<<files[i]<<endl;
}
ofn.close();
同理,只读取某给定路径下的当前文件夹名(以下类似,只给出函数,调用案例同上):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void
getJustCurrentDir( string path, vector<string>& files)
{
//文件句柄
long
hFile = 0;
//文件信息
struct
_finddata_t
fileinfo;
string p;
if
((hFile = _findfirst(p.assign(path).append(
"\\*"
).c_str(),&fileinfo)) != -1)
{
do
{
if
((fileinfo.attrib & _A_SUBDIR))
{
if
(
strcmp
(fileinfo.name,
"."
) != 0 &&
strcmp
(fileinfo.name,
".."
) != 0)
{
files.push_back(fileinfo.name);
//files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
}
}
}
while
(_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
只读取某给定路径下的当前文件名:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void
getJustCurrentFile( string path, vector<string>& files)
{
//文件句柄
long
hFile = 0;
//文件信息
struct
_finddata_t
fileinfo;
string p;
if
((hFile = _findfirst(p.assign(path).append(
"\\*"
).c_str(),&fileinfo)) != -1)
{
do
{
if
((fileinfo.attrib & _A_SUBDIR))
{
;
}
else
{
files.push_back(fileinfo.name);
//files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
}
}
while
(_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
只读取某给定路径下的所有文件名(即包含当前目录及子目录的文件):
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
void
getFilesAll( string path, vector<string>& files)
{
//文件句柄
long
hFile = 0;
//文件信息
struct
_finddata_t
fileinfo;
string p;
if
((hFile = _findfirst(p.assign(path).append(
"\\*"
).c_str(),&fileinfo)) != -1)
{
do
{
if
((fileinfo.attrib & _A_SUBDIR))
{
if
(
strcmp
(fileinfo.name,
"."
) != 0 &&
strcmp
(fileinfo.name,
".."
) != 0)
{
//files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
getFilesA( p.assign(path).append(
"\\"
).append(fileinfo.name), files );
}
}
else
{
files.push_back(p.assign(path).append(
"\\"
).append(fileinfo.name) );
}
}
while
(_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
阅读全文
0 0
- C++实现读取特定路径下文件夹及文件名的方法
- C++实现读取特定路径下文件夹及文件名的方法
- C++实现读取特定路径下文件夹及文件名的方法
- C++实现读取特定路径下文件夹及文件名的方法
- Unity中获取特定文件夹下文件名包含特定字符串的文件路径
- C++获得文件夹下所有文件的路径及文件名
- 【C++】读取文件夹下所有文件名
- Java-读取某个目录下所有文件、文件夹和3种从文件路径中获取文件名的方法
- c++ 读取文件夹下的所有文件名(实现未知文件名也可以批量读取文件)
- c/c++实现遍历文件夹下特定的文件
- C#读取文件夹特定文件的方法
- 如何读取文件夹下的所有文件名
- c++读取文件夹下的所有文件名
- Matlab读取文件夹下的图像文件名
- C++ 读取文件夹下的所有文件名
- C++获取文件夹下特定后缀的所有文件名
- Windows下获取文件夹中特定后缀的所有文件名
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
- 顺义了,今天来到顺义了
- 监控网络使用情况的Linux命令行工具
- 实现一组功能的步骤
- C/C++的sizeof('a')和sizeof(char)
- hadoop 2.0中配置文件详解
- C++实现读取特定路径下文件夹及文件名的方法
- Fiddler抓包使用教程-基本功能介绍
- 人生之清单(list of life)
- 树的重心求法+POJ 1655
- BZOJ4590: [Shoi2015]自动刷题机
- PCM双声道分离为单声道
- android中的自定义封装易用的Dialog
- Thinking in Java整理笔记
- Python学习之旅-15