程序:

#include <stdio.h>
#include <dirent.h>
#include <string.h>typedef unsigned char BYTE;
typedef unsigned int DWORD;
typedef unsigned short WORD;#define pri(fmt, ...)   printf("["__FILE__"] <%s>_<%d> " ,__FUNCTION__,__LINE__ );\printf(fmt, ##__VA_ARGS__);int main()
{/* 给文件重命名时保存临时变量 */BYTE newname[80] = {0};memset(newname, 0 ,sizeof(newname));/* 文件描述符 */struct dirent *dirp;DIR *dp;/* 局部变量保存文件名称 */BYTE buf[128][64];/* 局部变量保存文件名个数 */BYTE num=0;char *path = "/mnt/hgfs/Ubuntu12.04-share/test/2_file/test_dir";/* 打开路径 */if ((dp = opendir(path))== NULL){pri("opendir error \n");//打开目录失败return -1;}/* 更换到当前目录 */chdir(path);/* 读取路径下的文件 */while(dirp = readdir(dp)){/* 排除 . 和 .. 目录 */if((strlen(dirp->d_name)) <= 2)continue ;/* 不能在打开目录的情况下,进行重命名。文件busy */memcpy(buf[num], dirp->d_name, sizeof(dirp->d_name));num++;pri(" dirp->d_name : %s \n", dirp->d_name);}int i=0;while(i != num){/* 排除 . 和 .. 目录 */if((strlen(buf[i])) <= 2)continue;memcpy(newname, "new", sizeof("new"));memcpy(newname+3, buf[i]+3, sizeof(buf[i])-3);/* 重命名 */if(rename(buf[i], newname) == 0){pri("Renamed %s to %s !\n", buf[i], newname);}elseperror("rename");pri(" newname : %s \n", newname);i++;}return 0;}

运行结果:

root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file#
root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file# gcc -o test test.c
root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file#
root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file#
root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file# ls ./test_dir/
old_1.h264  old_2.h264  old_3.h264  old_4.h264  old_5.h264
root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file# ./test
[test.c] <main>_<48>  dirp->d_name : old_1.h264
[test.c] <main>_<48>  dirp->d_name : old_2.h264
[test.c] <main>_<48>  dirp->d_name : old_3.h264
[test.c] <main>_<48>  dirp->d_name : old_4.h264
[test.c] <main>_<48>  dirp->d_name : old_5.h264
[test.c] <main>_<64> Renamed old_1.h264 to new_1.h264 !
[test.c] <main>_<69>  newname : new_1.h264
[test.c] <main>_<64> Renamed old_2.h264 to new_2.h264 !
[test.c] <main>_<69>  newname : new_2.h264
[test.c] <main>_<64> Renamed old_3.h264 to new_3.h264 !
[test.c] <main>_<69>  newname : new_3.h264
[test.c] <main>_<64> Renamed old_4.h264 to new_4.h264 !
[test.c] <main>_<69>  newname : new_4.h264
[test.c] <main>_<64> Renamed old_5.h264 to new_5.h264 !
[test.c] <main>_<69>  newname : new_5.h264
root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file# ls ./test_dir/
new_1.h264  new_2.h264  new_3.h264  new_4.h264  new_5.h264
root@ubuntu:/mnt/hgfs/Ubuntu12.04-share/test/2_file#

参考链接:
https://cloud.tencent.com/developer/article/1066207

http://c.biancheng.net/cpp/html/323.html

C语言:重命名文件(rename()函数)相关推荐

  1. linux系统c语言重命名文件,C语言文件操作函数

    我们也可以在模式字符串中指定打开的模式,如"rb"表示以二进制模式打开只读文件,"w+t"或"wt+"表示以文本模式打开读/写文件. 此函数 ...

  2. 【C 语言】文件操作 ( remove 函数删除文件 | rename 函数重命名文件 | 代码示例 )

    文章目录 一.remove 函数删除文件 二.rename 函数重命名文件 一.remove 函数删除文件 remove 函数原型 : 删除指定的文件 ; #include <stdio.h&g ...

  3. linux下rename命令用法详解(重命名文件)

    本文介绍了linux系统中rename命令的用法,用来修改文件名.重命名文件,批量重命名文件rename是最好的选择,需要的朋友参考下. 在linux系统中重命名文件,经常用到mv命令,批量重命名文件 ...

  4. 批处理命令 删除文件,重命名文件

    @echo off rem %1 为路径参数; rem del /q /s del /q /s D:\数据库-勿删\Data\config.xml  删除文件 rem rename D:\数据库-勿删 ...

  5. 在linux中给文件重命名,在Linux中,如何重命名文件和目录

    重命名文件和目录在Linux系统上执行的最基本的任务之一,可以使用GUI文件管理器或命令行终端重命名文件. 重命名单个文件很容易,但是一次重命名多个文件会是一个挑战,特别对于新接触Linux的用户. ...

  6. php rename函数_PHP rename函数使用详解(php重命名文件)

    PHP中的rename()函数是一个内置函数,用于重命名文件或目录.它尝试用用户指定的新名称更改文件或目录的旧名称,并且在必要时可以在目录之间移动. 如果用户指定的新名称已经存在,rename()函数 ...

  7. c语言如何重命名文件夹,VC 复制移动删除重命名文件文件夹

    /* 能产生对话框的标志: FOF_SILENT             //progress dialog FOF_RENAMEONCOLLISION //replace dialog FOF_NO ...

  8. c语言文件怎么重命名文件,c语言中 如何删除文件和重命名文件,举个例子可以么...

    满意答案 takurachin 2013.05.27 采纳率:45%    等级:12 已帮助:8700人 函数名: rename 功 能: 重命名文件 用 法: int rename(char *o ...

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

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

最新文章

  1. 如何让自己时刻冷静的方法_4个方法,教你如何真正爱自己
  2. mongodb学习(六)索引
  3. unity android ndk的作用,Unity中编写Android下使用的so插件
  4. servlet后台如何接受multpartfile_Servlet进阶教程(你不得不知道的Servlet知识点)
  5. 乱想-HTTP请求常用对象
  6. ImportError: cannot import name FileStorage
  7. miui游戏驱动程序偏好设置_米粉必看:小米官方教你如何关闭 MIUI 广告 - 小米,MIUI...
  8. 菜鸟教程 php mysql_PHP MySQL 读取数据 | 菜鸟教程
  9. CUDA C编程权威指南 第三章 CUDA执行模型
  10. VXLAN配置实例(二)——VXLAN跨子网互通
  11. java aes加密_springboot.X手册:防抓包?快速实现API接口数据加密
  12. USB协议架构及驱动架构
  13. python希尔伯特变换_Hilbert变换提取信号特征的Python实现
  14. 微信小程序项目实例——今日美食
  15. python 使用 ipx协议_Samba 服务使用的端口和协议
  16. mysql innodb数据库修复_mysql innodb异常修复
  17. 全球及中国等离子电视行业市场销售量调研及未来发展展望报告2022-2027年
  18. pscs6怎么做html模板,怎么在Adobe Photoshop CS6里制作表格模板(PS)怎么画表格
  19. 安卓蓝牙实现即时通讯功能
  20. python自动化处理隐藏元素_处理隐藏元素

热门文章

  1. Keras之Conv2D
  2. 第10章 对象和类 -1
  3. Kudo介绍 + Spark\Python\Scala开发Kudu应用程序
  4. Java如何获取IP属地 ip2region failed to create searcher with x:java.io.FileNotFoundException:( 系统找不到指定的路径)
  5. 仿掌阅实现书籍打开动画
  6. C#常见容器ArrayList、List、HashSet、Hashtable 、Dictionary、Stack、Queue
  7. 获取android已安装的应用PackageInfo启动第三方APP应用
  8. 服务器主机型号,服务器的主机型号
  9. 认识Apache Bookkeeper
  10. 基于 Agora SDK 实现 macOS 端的一对一视频通话