您的位置:首页 > 其它

code 提取文件夹下所有文件的名字(包括子文件夹)

2015-12-22 12:38 239 查看


#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<dirent.h>

#include<unistd.h>

#include<vector>

#include<string>

#include<iostream>

using namespace std;

int readFileList(char *basePath)

{

DIR *dir;

struct dirent *ptr;

char base[1000];

vector<string> file_names;

if((dir =opendir(basePath))==NULL)

{

perror("Open direrror");

exit(-1);

}

while((ptr =readdir(dir))!=NULL)

{

if(strcmp(ptr->d_name,".")==0|| strcmp(ptr->d_name,"..")==0)

continue;

//file

else if(ptr->d_type == 8)

{

file_names.push_back(ptr->d_name);

//printf("d_name:%s%s\n",basePath,ptr->d_name);

}

//link file

else if(ptr->d_type ==10)

printf("d_name:%s%s\n",basePath,ptr->d_name);

//dir

else if(ptr->d_type == 4)

{

memset(base,'\0',sizeof(base));

strcpy(base,basePath);

strcat(base,"/");

strcat(base,ptr->d_name);

readFileList(base);

}

}

for(vector<string>::iterator it= file_names.begin();it!=file_names.end();it++)

{

cout<<basePath<<"/"<<*it<<endl;

}

closedir(dir);

return 0;

}

int main()

{

DIR *dir;

char basePath[1000];

memset(basePath,'\0',sizeof(basePath));

getcwd(basePath,999);

printf("the current diris:%s\n",basePath);

strcat(basePath,"/123");

readFileList(basePath);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: