c++获取文件名
来源:互联网 发布:java方法的命名规则 编辑:程序博客网 时间:2024/05/21 09:55
有的时候需要对一个具体的类型文件进行操作后,存入另一种类型的文件中(如提取语音文件.wav文件中的相关信息,然后存入同名的.txt文件中去)
本文介绍一种方法来获取文件名,如对于文件D:\code\test\sample000.wav到D:\code\test\sample100.wav这100个文件,获取它们的相关信息然后存入到同名的txt文件中去。
首先要获得该文件下的所有文件,具体方法如下:使用struct _finddata_t这个数据结构来打开文件,通过新建一个容器来存储所有的文件名。
void getAllFiles(string path, vector<string>& files){//文件句柄 long hFile = 0;//文件信息 struct _finddata_t fileinfo; //很少用的文件信息读取结构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){files.push_back(p.assign(path).append("/").append(fileinfo.name));getAllFiles(p.assign(path).append("/").append(fileinfo.name), files);}}else{//files.push_back(p.assign(path).append("\\").append(fileinfo.name));files.push_back(p.assign(fileinfo.name)); //只保存文件名}} while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1_findclose(hFile);}}
在获取了所有文件名之后,就可以使用strcpy函数来处理字符串了,这里需要将vector<string>转化成字符串才可以处理。
do{int pos = 0;char txtName[100];pos = files[n].find(".wav");strcpy(txtName, (files[n].replace(pos,4,".txt")).c_str());//string转char[]
阅读全文
0 0
- C#获取当前时间做为文件名
- C语言 获取系统临时目录并获取临时文件名
- 获取文件名
- 获取文件名
- 获取文件名
- 获取文件名
- c++/c 获取cpp文件行号跟文件名
- c++/c 获取cpp文件行号跟文件名
- c++/c 获取cpp文件行号跟文件名
- c++/c 获取cpp文件行号跟文件名
- Linux c 获取目录下面所有文件文件名
- Linux C语言获取目录下特定类型的文件名
- C/C++ 解析文件路径 获取文件名和扩展名
- linux c 通过文件描述符获取文件名
- c语言获取当前可执行文件的执行路径个文件名
- 【C#】——文件夹中获取指定特点的文件名
- C/C++ 获取不带路径的文件名的方法
- Linux下C获取文件夹下所有文件名
- python 安装第三方模块
- X Chen笔记---Centos/Redhat网卡别名问题
- 微信公众平台OAuth2.0网页授权php示例
- ListView 源码解析
- 润乾报表设计器——预览报表问题解决
- c++获取文件名
- 百度地图api 实例 整个自动提示 并计算两地的行驶距离
- android动态加载
- 算法(2.4 优先队列)
- var args = Array.prototype.join.call(arguments,',');
- APM和Mission Planner间使用4G GPRS通信
- IE设置浏览器不缓存页面
- hdu 2553
- bootstrap组件之导航条