rename

2023-05-16

头文件:#include <stdio.h>

函数rename()用于重命名文件、改变文件路径或更改目录名称,其原型为
    int rename(char * oldname, char * newname);

【参数】oldname为旧文件名,newname为新文件名。

【返回值】修改文件名成功则返回0,否则返回-1。

重命名文件:
  • 如果newname指定的文件存在,则会被删除。
  • 如果newname与oldname不在一个目录下,则相当于移动文件。

重命名目录:
  • 如果oldname和oldname都为目录,则重命名目录。
  • 如果newname指定的目录存在且为空目录,则先将newname删除。
  • 对于newname和oldname两个目录,调用进程必须有写权限。
  • 重命名目录时,newname不能包含oldname作为其路径前缀。例如,不能将/usr更名为/usr/foo/testdir,因为老名字( /usr/foo)是新名字的路径前缀,因而不能将其删除。

【实例】一个简单的修改文件名的程序。

   
   
  1. #include<stdio.h>
  2. #include <fcntl.h>
  3. int main(void)
  4. {
  5. char oldname[100], newname[100];
  6. /* prompt for file to rename and new name */
  7. printf("请告诉我一个文件的完整路径: ");
  8. gets(oldname);
  9. printf("您想修改为: ");
  10. gets(newname);
  11. /* 更改文件名 */
  12. if (rename(oldname, newname) == 0)
  13. printf("已经把文件 %s 修改为 %s.\n", oldname, newname);
  14. else
  15. perror("rename");
  16. return 0;
  17. }
运行结果:
请告诉我一个文件的完整路径:test.ncb
您想修改为:test111.ncb
已经把文件test. ncb修改为test111. ncb

例子首先定义两个数组存储用户指定的文件名, 接着使用函数gets()接收用户输入的文件名,再使用函数rename()修改,如果成功则返回值为0,提示修改成功。

注意:实际开发中尽量避免使用gets()函数,gets()会影响程序的安全性和健壮性,请查看: C语言gets()函数:从流中读取字符串

又如,设计一个在DOS命令行下修改文件的程序。

 
 
  1. #include <stdio.h>
  2. void main(int argc, char **argv)
  3. {
  4. if(argc < 3)
  5. {
  6. printf("Usage: %s old_name new_name\n", argv[0]);
  7. return;
  8. }
  9. printf("%s=>%s", argc[1], argv[2]);
  10. if(rename(argv[1], argv[2]) < 0)
  11. printf("error!\n");
  12. else
  13. printf("ok!\n");
  14. }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rename 的相关文章

  • 用于反转文件名中日期顺序的批处理脚本

    我想使用批处理脚本来重命名一堆使用以下命名方案的文件 File 2 9 pdf File 3 9 pdf File 4 9 pdf 我想反转数字 使它们变成 File 9 2 pdf File 9 3 pdf File 9 4 pdf 通常
  • MediaStore.Images.Media.insertImage 之后的文件名

    我在用MediaStore Images Media insertImage ContentResolver cr String imagePath String name String description 功能将新创建的图像插入到图库
  • 在 Linux 中删除文件名中的空格[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在不同的文件夹中有数百个 jpg 文件 如下所示 304775 105 01 jpg 304775 105 03 jpg 304775 105 05
  • django makemigrations 无需用户输入即可重命名字段

    我有一个名为 CharField 的模型oldName 我想将该字段重命名为newName 当我跑步时python 管理 py makemigrations 我收到确认请求 您是否将 model oldName 重命名为 model new
  • swing - 触发树单元编辑事件

    我有一个带有可编辑节点的 JTree 如何以编程方式触发树单元格编辑事件 即调出节点重命名文本框来代替突出显示的节点 就像用户手动突出显示它并按 F2 一样 基本上 我想添加一个 重命名 菜单项或工具栏按钮 以提示用户了解树的特定功能 并且
  • 查找并重命名所有文件扩展名不正确的图片

    我正在寻找一种方法来自动重命名所有文件扩展名错误的图像 到目前为止 我至少找到了如何获取所有这些文件的列表 find media folder name jpg exec file grep PNG GIF gt foobar txt fi
  • 使用批处理脚本重命名目录中的多个文件

    我有大约 1000 张图像 它们的名称如 IMG 12223 我想将它们重命名为 1 2 3 4 1000 我该怎么做 我编写了一个列出文件的批处理脚本 但我不知道如何重命名每个文件 例如将名称为 IMG 12223 的第一张图像重命名为
  • SVN重命名目录,维护文件历史记录

    我最初创建 svn 存储库时没有建议的主干 分支 标签结构 它看起来像这样 src src file txt src file2 txt 我使用TortoiseSVN将 src目录重命名为 projectName trunk src 但是
  • 一次更改工作表中的多个命名单元格和范围

    我想在工作表中更改很多 Excel 名称 200 名称就像 comp 我想在 cons 中更改它 所以每次的变化都是一样的 有没有办法一次性完成这一切 我知道对于函数来说 使用 control h 很简单 然后用 cons 替换 comp
  • 无法让 MSBuild 社区任务 RegexReplace 工作

    我正在尝试复制一堆名称以前缀开头的文件DR 但副本必须删除该前缀 那是 DR foo必须复制为foo 我正在尝试这个 它基于文档 chm 中提供的示例
  • 重命名目录会在我第二次重命名时锁定重命名的 dir

    我在多次重命名目录时遇到问题 它似乎锁定了文件 e comes from a objectListView item DirectoryInfo di DirectoryInfo e RowObject DirectoryInfo pare
  • 使用ant,在不知道完整路径的情况下重命名目录?

    给定一个包含未知目录的 zip 文件 如何重命名该目录或将该目录移动到规范化路径
  • 为什么R在重命名栅格堆栈层时添加“x”

    我在 R 中有一个包含 84 层的栅格堆栈 砖块 我试图根据从 199911 到 200610 1999 年 11 月到 2006 年 10 月 的年份和月份来命名它们 然而 由于某种原因 R 不断在我给图层指定的任何名称的开头添加 X 有
  • 如何在 Bash 中将文件名中的填充数字清零?

    使用 Bash 重命名以下形式的文件的最佳方法是什么 foo1 foo2 foo1300 fooN 使用零填充的文件名 foo00001 foo00002 foo01300 fooN 这不是纯粹的 bash 但是使用 Perl 版本更容易r
  • 使用 PowerShell 重命名 FTP 上的文件

    有没有办法重命名 FTP 目录中的文件 我正在将实时图像从计算机流式传输到 FTP 但问题是当它将图像上传到 FTP 时 它会立即替换文件 我想先上传临时名称的图像 然后重命名为 live jpg 这就像缓存文件上传一样 while tru
  • 在不知道列名的情况下重命名单个 pandas DataFrame 列

    我知道我可以使用以下方法重命名单个 pandas DataFrame 列 drugInfo rename columns col 1 col 1 new name inplace True 但我想重命名一个列根据其索引 不知道它的名字 虽然
  • Matlab:从命令窗口重命名工作区元素?

    Matlab 的 GUI 允许我通过右键单击元素并选择 重命名 选项来重命名工作区中的任何元素 是否也可以从命令窗口执行此操作 这些是您可以轻松亲自测试的事情 并且您应该这样做 这是学习 发现的最佳方式 无论如何 答案是否定的 您不能从命令
  • SQL 重命名表命令

    我可以跑RENAME TABLE student TO student new 该命令是相同的并且易于遵循 有没有一种方法可以用简单的命令重命名很多表 假设所有表都属于同一个数据库名称 我不需要写很多代码 如下所示 RENAME TABLE
  • 重命名命令中的下划线(Perl 和 Unix shell)

    我正在尝试替换所有 下划线字符为 所有文件名中的连字符 mat在一个文件夹内 我输入不同版本但未成功 rename f w mat 有人可以向我解释一下出了什么问题吗 如果您正在使用基于 Perl 的rename http socialte
  • 在 C# 中重命名文件

    如何使用 C 重命名文件 看一眼系统 IO 文件 移动 http msdn microsoft com en us library system io file move aspx 将文件 移动 到新名称 System IO File Mo

随机推荐

  • python+pycharm+pyqt5安装教程

    现在教大家在Windows系统下如何安装Python 43 PyCharm 43 PyQt5 1 安装Python 访问官网https www python org xff0c 下载对应Python版本 2 安装PyQt5 1 xff09
  • pytest+seleniumUI自动化框架设计

    前言 selenium自动化 43 pytest测试框架 本章你需要 一定的python基础 一定的selenium基础 不讲selenium xff0c 不会的自己去看selenium中文翻译网 测试框架简介 测试框架有什么优点呢 xff
  • selenium的UI自动化时遇到了谷歌浏览器与驱动不兼容的问题解决方案

    问题背景 xff1a 在做selenium的UI自动化时 xff0c 遇到了谷歌浏览器与驱动不兼容的问题 去很多其他网站下载谷歌浏览器驱动 xff0c 结果下载下来的都是2 23版本的 xff08 困扰了很久啊 xff0c 一群骗子 xff
  • 如何使用apipost做接口测试?

    今天给大家推荐一款好用的接口测试工具 xff1a apipost 这是一款国产的接口测试工具 xff0c 非常类似于postman xff0c 但是整体使用上感觉要比postman更适合咱们使用 xff0c 毕竟是全中文的 话不多说直接上图
  • 如何使用pycharm将github上的代码同步到本地

    1 首先确定你安装了git exe 具体的话是在pycharm里面的settings version control 2 打开pycharm xff0c 新建版本使用git 3 从github上复制代码链接 4 填入相关内容点击clone即
  • StrokeStart与StrokeEnd动画

    通过修改CAShapeLayer的StrokeStart与StrokeEnd的值来实现画图动画 效果图 代码部分 import 34 ViewController h 34 64 interface ViewController 64 pr
  • GUI编程之路内计费工具

    span class token keyword import span os span class token keyword import span sys span class token keyword from span PyQt
  • 提高测试人员测试效率之GUI工具

    如何有效的去提高测试效率 xff0c 在一个团队当中 xff0c 肯定会存在部分人员无法熟悉数据库操作的情况 xff0c 这个时候我们就可以通过GUI编程将工具界面会 xff0c 使之快速的上手 本次通过一个GUI工具来带领大家如何制作这么
  • GUI编程之智慧交通自动化测试计费

    最终实现效果 本工具实现了案例搜索 xff0c 导入案例 xff0c 测试类型选择 xff0c 自动化测试 xff0c 测试报告 xff0c 邮件发送等功能 xff0c 能有效的提升回归测试效率 xff0c 保证测试质量 源码暂不提供 xf
  • Ubuntu14.04 Wifi 连接不稳定、掉线重连问题(终极解决办法)

    Ubuntu14 04 Wifi 连接不稳定 上不了网 掉线问题 xff08 终极解决办法 xff09 这可能是我写的最短的一篇博客 用Ubuntu系统的人知道 xff0c 有线连接比较稳定 xff1b 一般台式机不带网卡 xff0c 自己
  • 【Ubuntu】Ubuntu上搭建本地源,做离线安装

    一 实验背景 Ubuntu作为最优秀的Linux发行版之一 xff0c 是初学者入门的不二选择 xff0c 但Linux有个最大的问题 xff0c 就是离了网络就废了 在Windows系统中 xff0c 安装软件十分方便 xff0c 下载安
  • gitlab-ce 备份还原 迁移新系统

    https blog csdn net foupwang article details 94362292 迁移前首先要保证新旧服务器上的GitLab版本号一致 查看当前GitLab版本 cat opt gitlab embedded se
  • linux虚拟网络设备之vlan配置详解

    https www jb51 net article 130486 htm 注意VLAN方式达到了网络隔离 xff0c 但是mac地址是相同的 xff0c 意思就是基于同一个网卡出来的vlan mac地址相同 要想不通 xff0c 可以用m
  • jacoco的使用

    一 概述Java 覆盖率 Jacoco 插桩的不同形式总结和踩坑记录 TesterHome 测试覆盖率 xff0c 老生常谈的话题 因为我测试理论基础不是很好 xff0c 就不提什么需求覆盖率啦这样那样的主题了 xff0c 直奔主题 xff
  • mysql bin-log,relay-log删除方法

    master的bin log日志清理 xff1a 方法1 RESET MASTER 1 1 解释 xff1a 该方法可以删除列于索引文件中的所有二进制日志 xff0c 把二进制日志索引文件重新设置为空 xff0c 并创建一个以 000001
  • ubuntu18 网络问题

    在 etc netplan yaml配置文件中 xff1a renderer的值可以是networkd xff0c 或者是NetworkManager 它俩的其中一个区别为 xff1a networkd在图像界面 xff0c network
  • Python - 日志管理模块: Loguru的使用

    python的日志管理模块可以用自带的logging模块 xff0c 也可以用第三方的Loguru模块 xff0c 关于logging和loguru模块的简单使用可以参考以下文章 xff0c 写的还是不错的 xff1a logging 和
  • centos 源码编译 srpm centos-git-common

    Overview centos git common CentOS Git server
  • centos7 nbd 挂在qcow2或qcow,raw,虚机镜像,virsh,virt,使用qemu-nbd挂载qcow2镜像文件

    基本原理 nbd xff08 网络块设备 Network Block Device xff09 xff0c 利用qemu nbd将qemu虚拟机镜像挂载到Linux上 展开来讲 xff0c nbd可以将一个远程主机的磁盘空间 xff0c 当
  • rename

    头文件 xff1a include lt stdio h gt 函数rename 用于重命名文件 改变文件路径或更改目录名称 xff0c 其原型为 int rename char oldname char newname 参数 oldnam