C/C++获取文件夹下所有文件
来源:互联网 发布:淘宝刷手拿钱跑 编辑:程序博客网 时间:2024/06/16 01:35
#include <iostream> #include <stdlib.h> #include <stdio.h> #include <vector>#include <string>#include <algorithm>#ifdef linux #include <unistd.h> #include <dirent.h> #endif #ifdef WIN32 #include <direct.h> #include <io.h> #endif using namespace std;vector<string> getFiles(string cate_dir){vector<string> files;//存放文件名 #ifdef WIN32 _finddata_t file;long lf;//输入文件夹路径 if ((lf = _findfirst(cate_dir.c_str(), &file)) == -1) {cout << cate_dir << " not found!!!" << endl;}else {while (_findnext(lf, &file) == 0) {if (strcmp(file.name, ".") == 0 || strcmp(file.name, "..") == 0)continue;files.push_back(file.name);}}_findclose(lf);#endif #ifdef linux DIR *dir;struct dirent *ptr;char base[1000];if ((dir = opendir(cate_dir.c_str())) == NULL){perror("Open dir error...");exit(1);}while ((ptr = readdir(dir)) != NULL){if (strcmp(ptr->d_name, ".") == 0 || strcmp(ptr->d_name, "..") == 0) ///current dir OR parrent dir continue;else if (ptr->d_type == 8) ///file //printf("d_name:%s/%s\n",basePath,ptr->d_name); files.push_back(ptr->d_name);else if (ptr->d_type == 10) ///link file //printf("d_name:%s/%s\n",basePath,ptr->d_name); continue;else if (ptr->d_type == 4) ///dir {files.push_back(ptr->d_name);/*memset(base,'\0',sizeof(base));strcpy(base,basePath);strcat(base,"/");strcat(base,ptr->d_nSame);readFileList(base);*/}}closedir(dir);#endif //排序,按从小到大排序 sort(files.begin(), files.end());return files;}#ifdef WIN32int main(void){char current_address[100];memset(current_address, 0, 100);getcwd(current_address, 100); //获取当前路径 cout << current_address << endl;strcat(current_address, "\\*");vector<string> files = getFiles((string)current_address);for (int i = 0; i < files.size(); i++){cout << files[i] << endl;}cin.get();return 0;}#elif linuxint main(void){DIR *dir;char basePath[100];///get the current absoulte path memset(basePath, '\0', sizeof(basePath));getcwd(basePath, 999);printf("the current dir is : %s\n", basePath);cout << endl << endl;vector<string> files = getFiles(basePath);for (int i = 0; i < files.size(); i++){cout << files[i] << endl;}cout << "end..." << endl << endl;return 0;}#endif // WIN32
0 0
- 获取文件夹下所有文件(c++)
- C/C++获取文件夹下所有文件
- C/C++ 获取文件夹下的所有文件列表
- C#.net获取指定文件夹下的所有jpg文件,并按文件创建时间排序
- C#.net获取指定文件夹下的所有jpg文件,并按文件创建时间排序
- Linux下C获取文件夹下所有文件名
- Windows下C获取文件夹下所有文件名
- C#.NET获取指定文件夹下所有的指定类型文件
- 获取文件夹下所有文件
- 【C++】获取当前文件夹内的所有文件
- C#.Net遍历远程文件夹下的所有文件
- C#.Net遍历本地文件夹下的所有文件
- 用C遍历文件夹下的所有文件
- linux c 读取并处理文件夹下的所有文件
- 用C遍历文件夹下的所有文件
- Windows查找文件夹下所有文件-C实现
- C/C++的删除文件夹下的所有文件
- 遍历文件夹下的所有文件(Python&C++)
- OOAD Lab2实验文档
- js的单引号和双引号的问题
- iphone 推送服务--Apple Push Notification Service
- (转)Android 面试题总结之Android 基础(ListView)(五)
- 关于easyui datagrid 加载本地数据
- C/C++获取文件夹下所有文件
- 获取当前最顶层的ViewController
- Java排序算法
- 排序小结(java实现 )
- 17->管理表空间
- position属性值的理解
- leetcodeOJ 63. Unique Paths II
- HMaster功能与启动
- 【Unet】Unet 初步了解