遍历文件夹下的文件
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
|
#include <stdio.h>
#include <io.h>
#include <string>
int main()
{
//目标文件夹路径
std::string inPath = "C:\\Program Files\\*";//遍历文件夹下的所有文件
//用于查找的句柄 win10用long long或者intptr_t,win7用long就可以了
long long handle;
struct _finddata_t fileinfo;
//第一次查找
handle = _findfirst(inPath.c_str(),&fileinfo);
if(handle == -1)
return -1;
do
{
//找到的文件的文件名
printf("%s\n", fileinfo.name);
} while (!_findnext(handle,&fileinfo));
_findclose(handle);
system("pause");
return 0;
}
|
遍历文件夹下的指定类型文件
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
|
#include <stdio.h>
#include <io.h>
#include <string>
int main()
{
//目标文件夹路径
std::string inPath = "E:\\image\\image\\*.jpg";//遍历文件夹下的所有.jpg文件
//用于查找的句柄 win10用long long或者intptr_t,win7用long就可以了
long long handle;
struct _finddata_t fileinfo;
//第一次查找
handle = _findfirst(inPath.c_str(),&fileinfo);
if(handle == -1)
return -1;
do
{
//找到的文件的文件名
printf("%s\n", fileinfo.name);
} while (!_findnext(handle,&fileinfo));
_findclose(handle);
system("pause");
return 0;
}
|
遍历文件夹中的图片并重新按顺序命名输出
遍历文件夹中的图片,将读取到的图片重新按顺序命名输出;同时创建文件名列表(txt或dat文件)。
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
|
#include <stdio.h>
#include <io.h>
#include <string>
#include <iostream>
#include <fstream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
_finddata_t FileInfo;
//读取图片所在的路径
string inPath = "E:\\image\\face\\negitive\\img\\";
string strfind = inPath + "*";
//用于查找的句柄 win10用long long或者intptr_t,win7用long就可以了
long long Handle = _findfirst(strfind.c_str(), &FileInfo);
char filename[300];
Mat src;
int k = 0;
//输出txt文件(路径列表)所在的路径
ofstream outfile("E:\\bg.txt", ofstream::app);
//输出dat文件(路径列表)所在的路径
//ofstream outfile("E:\\bg.dat", ofstream::app);
if (Handle == -1L)
{
cerr << "can not match the folder path" << endl;
exit(-1);
}
//namedWindow("input", WINDOW_AUTOSIZE);
do{
//判断是否有子目录
if (FileInfo.attrib & _A_SUBDIR)
{
if ((strcmp(FileInfo.name, ".") != 0) && (strcmp(FileInfo.name, "..") != 0))
{
inPath += FileInfo.name;
cout <<inPath<<endl;
}
}
else
{
cout <<inPath<<FileInfo.name<<endl;
//读取图片所在的路径
string path = "E:/image/face/negitive/img/" + (string)FileInfo.name;
src = imread(path);
//显示读取的图片
//imshow("input", src);
//输出文件的路径
sprintf_s(filename,"E:/image/face/negitive/img0/%d.jpg",k);
//将读取到的图片重新按顺序命名输出
imwrite(filename, src);
outfile<<"img/"<<k<<".jpg\n";
k++;
waitKey(1);
}
} while (_findnext(Handle, &FileInfo) == 0);
_findclose(Handle);
return 0;
}
|