文件夹所有c语言代码,基于C/C++的读取文件夹下所有文件(图片、文档等)的代码...

#include 

#include

#include

#include

#include

using namespace std;

void getFiles(string foler, vector& files);

int main() {

string folder = "E:/MATLAB/LBP/scene_categories/MITcoast"; //此处用的是斜杠,也可以用反斜

//但需注意的是由于C语言的特点,要用双反斜杠,即"E:\\MATLAB\\LBP\\scene_categories"

//cin >> folder; //也可以用此段代码直接在DOS窗口输入地址,此时只需正常的单反斜杠即可

vector files;

getFiles(folder, files ); //files为返回的文件名构成的字符串向量组

for( int i = 0; i < files.size(); i++ ) { //files.size()返回文件数量

//To do here

cout << files[i] << endl;

}

system("pause");

return 0;

}

void getFiles( string path, vector& files ) {

//文件句柄

long hFile = 0;

//文件信息

struct _finddata_t fileinfo; //大家可以去查看一下_finddata结构组成

//以及_findfirst和_findnext的用法,了解后妈妈就再也不用担心我以后不会编了

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)

getFiles( 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);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值