C++ 批量修改文件名

前言

在网上下一些学习资料,可是每个文件后带有一些其他无关的文字,形式如,某某某【某某某】.mp4,其中【】及其内容皆为无关内容,本文代码程序用于批量删除每个MP4文件后的【某某某】。

注意

文件名即为中文字符,不同于英文格式,所以以下代码中在需要的时候都使用了宽字符处理。

代码

#include <iostream>
#include <string>
#include <vector>
#include <io.h>
int main()
{//使用宽字节流对象,绑定为中文locale china("chs");//use china characterwcin.imbue(china);//use locale objectwcout.imbue(china);wstring dirpath = L"E:\\test\\"; //注意宽字符或宽字符串在初始化时要加前缀L_wfinddata_t file; //使用宽字节的_wfinddata_t对象而非_finddata_tlong lf; //是否遍历完毕的标志位wchar_t suffixs[] = L"*.mp4";   //要寻找的文件类型后缀,也统一使用宽字符串vector<wstring> fileNameList;   //文件夹下该类型文件的名字向量表wchar_t* p;int psize = dirpath.size() + 6; //后面要把后缀加上,为了防止数组越界需要多开一点空间,6个正好p = new wchar_t[psize];wcscpy(p, dirpath.c_str());//获取文件名,存入向量表if ((lf = _wfindfirst(wcscat(p, suffixs), &file)) == -1l){cout << "文件没有找到!\n";} else{cout << "\n文件列表:\n";do {//wcout << file.name << endl;wstring str(file.name);fileNameList.push_back(str);wcout << str << endl;} while (_wfindnext(lf, &file) == 0);}_findclose(lf);  //使用完毕后要关闭文件delete[] p;//遍历文件名向量表,并进行修改cout << "\n开始修改文件名:" << endl;for (vector<wstring>::iterator iter = fileNameList.begin(); iter != fileNameList.end(); ++iter){wstring oldName = dirpath + *iter;  //记得加上绝对路径auto pos = iter->find(L"【");wstring newName = dirpath + iter->substr(0, pos);newName += L".mp4";wcout << "oldName:" << oldName << endl;wcout << "newName:" << newName << endl;wcout << "oldName size = " << oldName.size() << endl;wcout << "newName size = " << newName.size() << endl;int ret = _wrename(oldName.c_str(), newName.c_str());if (ret != 0)perror("rename error!");cout << endl;}system("pause");return 0;
}

读者可以根据自身需求修改代码。

温馨提示

最好在使用程序前备用原资料,避免出现意外情况(比如我,在编写使用过程中忘记添加决定路径,导致原资料改名后跑到了项目路径下

C++ 批量修改文件名相关推荐

  1. python批量读取dat文件_python编写Windows环境下批量修改文件名

    在日常编程工作中我们经常需要对文件进行操作,而文件一般都是由文件名和扩展名组成的.比如我们经常需要把.dat 格式 转化成 .txt格式,把png改成jgp格式等等.这里我们就教大家如何利用PYTHO ...

  2. linux下批量修改文件名精彩解答案例分享

    ######################################################### #linux下批量修改文件名精彩解答案例分享 #date:21:34 2011-11 ...

  3. 用shell批量修改文件名

    在一个文件夹中如果文件名有固定形式,而希望实现批量修改文件名时,可以使用shell脚本 代码如下 将文件名中的a替换成b for i in *.txt; do mv $i  `echo $i | se ...

  4. python 修改文件名_【学习分享】利用python批量修改文件名

    1 前言 分享一个利用python批量修改文件名的方法,我们以前分享过用DOS命令来批量修改文件名,但是如果要修改多个文件夹内的文件名,用DOS命令就不好处理了,我们就来分享一下如何用python处理 ...

  5. python 修改文件名_Python 批量修改文件名

    本篇梳理了批量修改文件名的Python代码. import os import numpy as nppath = 'C:/Users/Owen/PycharmProjects/Create_File ...

  6. 【Excel】VBA批量修改文件名

    Excel:VBA批量修改文件名 Dim filePath As Variant '定义filepath为变量 Dim obj As Object '定义obj为变量对象 Dim fld, ff, g ...

  7. rename 批量修改文件名简单用法

    有的时候我们需要批量创建文件做测试,为了做区分,一般只要稍稍动动文件名即可,MV命令既可以移动文件,也是可以修改文件名的,但批量修改文件名MV做不到,此时,我们可以用rename命令批量修改是蛮不错的 ...

  8. ML二:python批量修改文件名-测试KDTree

    (1):#批量修改文件名 import os import numpy as np import string import shutil prefix =''#单引号,前缀! sufix ='txt ...

  9. python改文件名_python批量修改文件名、批量修改xml文件的path和filename

    1. python批量修改文件名(控制文件名的起始编号) import os path = "E:/Project/label/fire/" # 目标路径 filename_lis ...

  10. python列表批量 修改_python实现多进程按序号批量修改文件名的方法示例

    本文实例讲述了python实现多进程按序号批量修改文件名的方法.分享给大家供大家参考,具体如下: 说明 文件名命名方式如图,是数字序号开头,但是中间有些文件删掉了,序号不连续,这里将序号连续起来,总的 ...

最新文章

  1. sony硬盘摄象机误格式化(fat32)的数据恢复
  2. [笔记]Linux内核学习之旅--软中断与tasklet
  3. 深入解读:KubeVela 与 PaaS 有何不同?
  4. VMware vSphere/vCenter/ESX(i)介绍
  5. VTK:可视化算法之CutWithScalars
  6. android ListView控件滑动时出现黑色背景问题解法方案
  7. PHP的$_SERVER['HTTP_HOST']获取服务器地址功能详解
  8. docker学习(一)在centos7上安装与启动docker
  9. pytest的fixture传参数
  10. AcWing1090.绿色通道(单调队列DP)
  11. LaTex中“图片引用失败,显示(??)”的解决办法
  12. 1.4 多项式拟合实例
  13. python手动抛出异常
  14. linux mattrib 命令详解
  15. 哪里的http和socks5代理ip稳定速度快
  16. java源代码反编译_XJad(Java源程序反编译软件)
  17. 猎豹网校 java_猎豹网校Java 零基础入门 JAVA基础视频教程(精制)
  18. java使用ffmpeg对视频进行转码和分辨率转换
  19. FPGA入门实验-基于状态机实现4位共阴极数码管显示超声波模块读数
  20. 就业协议服务器是什么意思,什么是就业协议

热门文章

  1. 阿里云 RDS CPU性能优化
  2. Jmeter配置元件之HTTP授权管理器与 HTTP缓存管理器-19
  3. 微博上一些有用的话(六)
  4. Linux Kernel Patched
  5. julia语言 python解释器_Julia官宣:为机器学习构建一种语言和编译器
  6. 19寸宽屏液晶显示器的设置 有效保护视力
  7. 非802.11r的Fast Roaming
  8. 详解Eureka的自我保护机制
  9. CVE-2017-11176: A step-by-step Linux Kernel exploitation (part 4/4)
  10. 云服务器+Dock+搭建个人博客网站