c++如何批量修改文件后缀名

c++如何批量修改文件后缀名1 问题描述在日常的应用中 很多时候会用到批量修改图片的后缀名


1、问题描述
在日常的应用中,很多时候会用到批量修改图片的后缀名。比如将1.bmp修改为1.jpg。或许我们用格式工厂或者批处理文件.bat课以轻而易举的做到。这里暂不讨论。本篇文章仅仅对如何用c++做图片批处理修改后缀名做一些说明。
2、c++程序
程序思路:先获取到文件夹下所有文件的名字,然后,用newname取代原来的oldname。

#include "stdafx.h" #include <stdio.h> #include <fstream> #include <Windows.h> #include <cstdio> #include <iostream> #include <string> #include <io.h> #include <vector> #include <direct.h> #include <stdlib.h> #include <memory> using namespace std; void getFilesAll( 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) { getFilesAll( 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); } } void postfix() { char *filePath="G:\\image\\"; char strname[60]; vector<string> filesa; getFilesAll(filePath ,filesa ); for(unsigned int i=0 ; i<filesa.size(); i++) { char newname[80]; //store the folder's name char oldname[80]; strcpy(oldname, filesa[i].c_str()); cout<<filesa[i].c_str()<<endl; //strcpy(newname, filesa[i].c_str()); sprintf(newname,"G:\\result\\%d.jpg",i); //sprintf(newname,"%d.jpg",i); rename(oldname,newname); if (rename(oldname,newname)) { cout<<"第"<<i<<"个文件名字从"<<filesa[i].c_str()<<"修改为"<<newname<<"成功"<<endl; } cout<<strname<<endl; } } void main() { postfix(); system("pause"); }


3、效果图展示
(1)执行程序前状态如图1所示
图1:程序执行前状态

图1 执行程序前状态

(2)执行程序后状态如图2所示
图2:程序执行后状态

图2 执行程序后状态

(3) 程序执行结果如图3所示
图3:程序执行结果展示
图3 程序执行结果


4、总结
这个写的一般,但是也算是勉强能解决问题。希望能够对别人有借鉴或者帮助。
5、参考文献
http://zhidao.baidu.com/link?url=YPNaKWx22B7eNydm-fZMCefpjFfO0cZum4v2EQPAhSImvKJhyzxjR87_IZ1k11u0P9c6TYux4hpBA5efkTPfsxBUNle74JlcdATsTok1KCy
6、祝愿
不忘初心,方得始终。2016年,各位朋友新年快乐!

今天的文章 c++如何批量修改文件后缀名分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-31 14:30
下一篇 2024-12-31 14:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/97777.html