C++获取文件夹下特定后缀的所有文件名
来源:互联网 发布:淘宝最恶毒的差评 编辑:程序博客网 时间:2024/05/29 09:30
一、前言
在使用VS进行项目开发时,经常需要引入其他库的目录,每次配置都要重复敲入各.lib的文件名,特别烦躁,因此,本文将实现获取某一文件夹下特定后缀的所有文件名,并存入一个fileName.txt 文件中。
二、实现
main.cpp文件代码如下:
#include <string>#include <io.h>#include <vector>#include <iostream>#include <fstream>using namespace std;/************************************************************************//* 获取文件夹下所有文件名 输入: path : 文件夹路径 exd : 所要获取的文件名后缀,如jpg、png等;如果希望获取所有 文件名, exd = "" 输出: files : 获取的文件名列表 HolaMirai 2016/11/24 添加保存文件名到.txt文件中 shao, 20140707 *//************************************************************************/void getFiles( string path, string exd, vector<string>& files ){ //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string pathName, exdName; if (0 != strcmp(exd.c_str(), "")) { exdName = "\\*." + exd; } else { exdName = "\\*"; } if((hFile = _findfirst(pathName.assign(path).append(exdName).c_str(),&fileinfo)) != -1) { do { //如果是文件夹中仍有文件夹,迭代之 //如果不是,加入列表 // 不推荐使用,硬要使用的话,需要修改else 里面的语句 /*if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files ); } else */ { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) //files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句 //如果使用 files.push_back(fileinfo.name); // 只要得到文件名字使用该语句 } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); }}/* * argv[1]: 文件夹目录 * argv[2]: 文件后缀*/int main(int argc, char *argv[]){ if (argc != 3) { printf("please input the folder path and postfix.\n" \ "argv[1]:folder path\n"\ "argv[2]:postfix\n"); return 0; } vector<string> files; //获取该路径下的所有jpg文件 getFiles(argv[1], argv[2], files); ofstream outf; outf.open("fileName.txt"); int size = files.size(); for (int i = 0;i < size;i++) { outf<<files[i].c_str()<<endl; //cout<<files[i].c_str()<<endl; } return 0;}
三、运行
打开CMD窗口,cd 到getFileNames.exe所在目录,并传入参数,如下所示:
在桌面上会生成fileName.txt文件,打开它,内容如下:
四、参考资料
1.C++ 获取文件夹下的所有文件名:http://blog.csdn.net/cxf7394373/article/details/7195661#comments
2.使用C++获取文件夹中所有文件名(windows环境):http://blog.csdn.net/shaoxiaohu1/article/details/37499803
转载请注明作者和出处:http://blog.csdn.net/holamirai,未经允许请勿用于商业用途。
0 0
- C++获取文件夹下特定后缀的所有文件名
- Windows下获取文件夹中特定后缀的所有文件名
- 获取某文件夹下特定后缀的所有文件名称
- 获取项目加载根路径,得到文件夹下的所有指定后缀文件名列表
- 获取文件夹下的所有文件名
- C++ 获取文件夹下的所有文件名
- 获取文件夹下的所有文件名
- flex获取文件夹下的所有文件名
- C++ 获取文件夹下的所有文件名
- MFC获取文件夹下的所有文件名
- C++获取文件夹下的所有文件名
- 获取文件夹下的所有文件名
- MFC获取文件夹下的所有文件名
- MFC获取文件夹下的所有文件名
- C++ 获取文件夹下的所有文件名
- C++ 获取文件夹下的所有文件名
- C++ 获取文件夹下的所有文件名
- C++ 获取文件夹下的所有文件名
- framework--怎么样使用bundle来共享资源
- iOS 性能调优(必须掌握)
- 更改word中的引号""问题
- gdbsever 使用说明
- 判断IP是否为内网IP
- C++获取文件夹下特定后缀的所有文件名
- UE4读取本地XML文件
- 手动写脚本时,遇见的问题
- mysqli::store_result的使用
- Android 热修复方案Tinker(三) Dex补丁加载
- 如何Android项目变成两个独立的项目,将build.gradle文件中applicationId中名字更换
- 统计图中对“其他”数据统计时显示统计值和百分比
- 危情的群无多
- java基础类的回顾