批量重命名程序
2022/2/6 20:12:43
本文主要是介绍批量重命名程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 批量重命名
- 1. 前置知识
- 1.1. _finddata_t 类(结构体)
- 1.2.1 常用函数
- 1.2. stringstream类
- 1.1. _finddata_t 类(结构体)
- 2. 程序源码
- 1. 前置知识
批量重命名
1. 前置知识
1.1. _finddata_t 类(结构体)
#include<io.h> // finddata的头文件 struct _finddata_t { unsigned attrib; // 文件属性的储存位置 time_t time_create; // 存储文件创建时间 time_t time_access; // 文件最后一次被访问的时间。 time_t time_write; // 文件最后一次被修改的时间。 _fsize_t size; // 大小 char name[_MAX_FNAME]; // 文件名 };
这是_finddata_t类的组成
1.2.1 常用函数
long _findfirst(char *filespec, _finddata_t *fileinfo );
该函数是是在一个文件夹内查找文件,支持通配符
filespec 包含文件地址的字符串
fileinfo :这里就是用来存放文件信息的结构体的指针。(这个结构体必须在调用此函数前声明,不过不用初始化),函数会把搜索到的信息放进该变量.
函数返回值是一个long类型的句柄,若查找失败则返回-1
int _findnext( long handle, struct _finddata_t *fileinfo );
返回值: 若成功返回0,否则返回-1。
handle:即由_findfirst函数返回回来的句柄。
fileinfo:文件信息结构体的指针。
该函数的主要作用就是查找下一个文件
int _findclose( long handle );
返回值: 成功返回0,失败返回-1。
关闭句柄
1.2. stringstream类
https://blog.csdn.net/qq_43085783/article/details/120961614
2. 程序源码
#include <io.h> #include <cstring> #include <iostream> #include <sstream> using namespace std; string path, pre, p; int cnt = 1; long hfile = 0; struct _finddata_t fileinfo; void getdata(); string new_filename(); string getname(); int main() { getdata(); hfile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo); if (hfile != -1) { do { if (strcmp(fileinfo.name, ".") == 0 || strcmp(fileinfo.name, "..") == 0) continue; p = ""; cout << cnt << ":" << fileinfo.name << endl; string newName = new_filename(); rename(p.assign(path).append("\\").append(fileinfo.name).c_str(), newName.c_str()); } while (!_findnext(hfile, &fileinfo)); _findclose(hfile); cout << "success!" << endl; } system("pause"); return 0; } void getdata() { cout << "1:"; getline(cin, path); cout << "2:"; cin >> pre; cout << endl; } string new_filename() { string filename = getname(); stringstream ss; ss << pre << (int)cnt; cnt++; string type = filename.substr(filename.find('.'), filename.size() - filename.find('.')); ss << type; string new_name; ss >> new_name; return p.assign(path).append("\\").append(new_name); } string getname() { string s = ""; int len = strlen(fileinfo.name); for (int i = 0; i < len; i++) { s.push_back(fileinfo.name[i]); } return s; }
这篇关于批量重命名程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南