介绍

笔者有需求,需要将指定文件夹下的所有文件在原有名字的基础上进行重命名。 笔者查阅发现在windows API中有移动文件的API,将文件移动到当前文件就相当于重命名,故此可以使用该API。

BOOL WINAPI MoveFile(_In_ LPCTSTR lpExistingFileName,_In_ LPCTSTR lpNewFileName
);

这是对指定路径的某个文件进行移动,对所有文件进行移动,需要对文件进行遍历。笔者查阅后,可以使用下面3个函数实现文件的遍历操作。

// 根据filespec匹配 查找到指定文件(可能是多个),返回第一个匹配的句柄
intptr_t _findfirst(const char *filespec,struct _finddata_t *fileinfo // 传出参数
);
// 下一个匹配的文件
int _findnext(intptr_t handle,struct _finddata_t *fileinfo // 传出参数
);
// 关闭文件句柄
int _findclose( intptr_t handle
);

效果

添加了指定前缀002-

代码

#include <Windows.h>
#include <stdio.h>
#include <io.h>
#include <stdlib.h>
#define MAX 256int main() {struct _finddata_t file = {0};int fileHandle = 0, i = 0, len = 0;char filePath[MAX] = {0}, newName[MAX] = {0}, oldPath[MAX] = {0}, newPath[MAX] = {0};   char dir[MAX] = "F:\\Book\\AAA_Learn_Note\\新概念英语(第2册)美音(MP3+LRC)\\NCE2-美音-(MP3+LRC)\\";char prefix[MAX] = "002-";sprintf(filePath,"%s%s",dir,"*.*");fileHandle = _findfirst(filePath,&file); // 根据匹配规则找到指定类型的文件 if(fileHandle == -1) {printf("not find file\n");return 0;}do {len = strlen(file.name);if( len > 2) // 排除目录文件 {sprintf(newName,"%s%s",prefix,file.name);// 添加前缀 sprintf(oldPath,"%s%s",dir,file.name);sprintf(newPath,"%s%s",dir,newName);
//          printf("%s\n",oldPath);
//          printf("%s\n",newPath);   MoveFile(oldPath,newPath); // 移动文件, 移动到当前文件实际上就是重命名,如果是拷贝就用CopyFile i++;}} while( 0 == _findnext(fileHandle,&file) );_findclose(fileHandle);printf("move %d file success \n",i);return 0;
}

C/C++:C语言小程序—批量重命名文件相关推荐

  1. 【Windows小技巧】批量重命名文件

    2016/12/14更新 注:如果文件名包含空格,命令应写成ren "s0 (1).gif" s001.gif,简而言之,就是加上双引号!!!原因:系统将s0和(1).gif认为是 ...

  2. 计算机给文件重命名快捷键,实用电脑小技巧:批量重命名文件常用的小工具也可以设快捷键...

    沪江小编:对于很多人来说,电脑应该算是使用频率最高的工具了,可是你真的会用电脑么?实用电脑小技巧,用最简单明了的方式给你无比有趣的电脑使用新体验. [视觉遗像]注视图形中央的四个黑点30秒,然后闭眼仰 ...

  3. R语言——批量重命名文件

    R语言--批量重命名文件 前言 源代码 样例 小结 前言 针对指定文件夹里的文件,并依据参考表批量重命名文件. 提示:以下是本篇文章正文内容,下面案例仅供学习参考 源代码 # 批量重命名文件 # 批量 ...

  4. c语言文件批量改名,批量重命名文件的技巧

    批量重命名文件的技巧 尝试了半天,终于找到了几种批量重命名文件的方法,记录下来以备后用^_^ [quietheart@lv-k temp]$ touch {1,2,3,4,5}.cpp [quieth ...

  5. 【R语言】批量重命名文件

    批量重命名文件 # 批量重命名文件 (lf <-list.files(pattern = "wtudy")) # 新文件名修改1 (filesNewName <- gs ...

  6. python下载文件并改名_第46p,8行代码,用Python批量重命名文件

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第46篇文章,第二阶段的课程:Python基础知识:小案例之用Python批量重命名文件. 学习本课程,建议先看一遍:[计算机基础知 ...

  7. 使用Python按时间顺序批量重命名文件

    下面这段Python脚本能我们把一个文件夹下的所有文件,按最后修改的时间顺序,批量加序号前缀进行重命名: 注释比较详尽,就不多费口舌了,上代码: import os# 按修改时间排序后,批量重命名文件 ...

  8. 批量重命名文件 - Renamer JAVA File

    批量重命名文件的小工具 Renamer是一个帮助您整理硬盘文件的小工具.这次的软件使用JAVA语言开发. Renamer的主要功能:               1.按照指定的规则重命名文件,如IMG ...

  9. 天天向上续 python代码_第46p,8行代码,用Python批量重命名文件

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第46篇文章,第二阶段的课程:Python基础知识:小案例之用Python批量重命名文件. 学习本课程,建议先看一遍:[计算机基础知 ...

最新文章

  1. 三角形css_纯 CSS 实现绘制各种三角形(各种角度)
  2. iftop 查看你的网卡流量
  3. 操作系统习题6—存储管理2
  4. wxWidgets随笔(5)-utf8中文(1)
  5. YII2 rule exist unique
  6. 案例 解析频道节目单 c# 1614261055
  7. 《华为美》歌曲洗脑惹争议 华为回应:不知情、未参与 感谢厚爱
  8. 谈谈目前我对区块链(Blockchain)的认识
  9. python 数据结构包括三方面_Python数据结构:数据框
  10. 【知识图谱】从六个方面解析知识图谱的价值和应用
  11. 2019年中国大学生计算机设计大赛--心得总结
  12. 鸿蒙系统代还,荣耀智慧屏可以看电视了!华为还是妥协了
  13. zookeeper的原理和应用(非常详细透彻)
  14. oracle am时间,oracle里to_date()如何转换am、pm时间
  15. java lr0分析,LR0分析器实验报告.doc
  16. c++语言表白超炫图形_数学公式的超酷表白我爱你
  17. 什么是Teardrop攻击?我们要如何防御Teardrop攻击?
  18. 微信小程序文件下载及在线打开指定文档,解压Zip格式压缩包
  19. 弘辽科技:宝妈开淘宝网店,要不要注册公司才能做电商呢?
  20. 枢轴点(Pivot Point)系统

热门文章

  1. 操作系统课设之Windows 的互斥与同步
  2. ajax ssm 页面跳转_SSM用jq整合Ajax入门案例讲解
  3. 如何查看服务器gpu性能,ubuntu服务器查看GPU和CPU实时使用情况
  4. java 二阶段提交,二阶段提交协议(Two Phase Commitment Protocol)
  5. css旋转45度_css 渐变过渡2D
  6. Java笔记-AnnotationConfigApplicationContext在Spring中的例子
  7. Python笔记-UiSelector混合定位
  8. Qt工作笔记-QML中TextInput设置默认值,以及使用正则表达式只能输入整数
  9. C++ opengl 复合运动
  10. Python实现HTTP服务器(四)单进程线程非阻塞实现多任务