作者:Nick Major
翻译:疯狂的技术宅
原文:https://coderrocketfuel.com/article/how-to-rename-a-system-file-using-node-js未经允许严禁转载

介绍

你是在 Node.js 中操作系统文件,并且需要一种简单的方法来以编程方式重命名文件?

幸运的是 Node.js 的文件系统 (Fs) 核心模块实现了内置的方法,可以通过 fs.renam()fs.renameSync() 方法来给文件一个新名字。

这两个函数都会给你相同的结果,只不过是用了两种不同的方式去做。同步 fs.renameSync() 版本将阻塞你的代码并等待文件成功重命名或发生错误然后再继续运行。异步版本fs.rename()不会阻塞你的代码,而是在删除文件时返回一个回调函数。

下面将向你展示如何使用这两种方法。

要使下面的代码生效,请确保安装了Node.js,并把要重命名的文件放在项目目录的根目录中。在这个例子中,我们的文件是一个名为 "your-file.png" 的PNG图像文件。当然重命名方法适用于任何文件类型。

First, let's cover the fs.rename() version. We'll give you the full code and then explain all the different parts afterward:

首先介绍 fs.rename() 版本。我们将为你提供完整的代码,然后进行解释:

fs.rename():

const fs = require("fs")
const path = require("path")const pathToFile = path.join(__dirname, "your-file.png")
const newPathToFile = path.join(__dirname, "new-filename.png")fs.rename(pathToFile, newPathToFile, function(err) {if (err) {throw err} else {console.log("Successfully renamed the file!")}
})

让我们分解代码的每个部分:

  1. 首先,导入 Fs 模块和 Path 核心模块。
  2. 接下来创建 pathToFilenewPathToFile 变量。我们使用 Path 模块来获取想要更改的文件的当前路径。我们还创建了一个路径,其中包含希望新文件具有的名称。
  3. 然后,我们使用 fs.rename() 函数。将两个文件路径传递给函数,并返回一个回调。
  4. 在回调函数中,我们做了一些错误处理,如果成功就 console.log() 成功消息。

在终端中运行代码时,你应该看到以下输出:

$ Successfully renamed the file!

如果查看文件所在的目录,你应该看到文件被重新命名。

接下来介绍同步版本。

fs.renameSync():

const fs = require("fs")
const path = require("path")
const pathToFile = path.join(__dirname, "your-file.png")
const newPathToFile = path.join(__dirname, "new-filename.png")try {fs.renameSync(pathToFile, newPathToFile)console.log("Successfully renamed the file!")
} catch(err) {throw err
}

与前面的例子类似,我们需要 FsPath 核心模块。然后获取当前文件的路径,并创建一个路径,其中包含我们想要的新文件名。

但后面我们用了 try...catch 语句。在 try 部分,将 pathToFilenewPathToFile 变量传递给 fs.renameSync() 函数,并在成功重命名文件时记录成功消息。用 catch 抛出可能会发生的任何错误。

在终端中运行代码时,你应该看到与以前相同的输出:

$ Successfully renamed the file!

And the file in your directory will have a new name. 并且目录中的文件将具有新名称。

结论

Node.js 的文件系统(Fs)核心模块还有很多有用的方法。 可以通过查看文档获取更多信息。

欢迎关注前端公众号:前端先锋,领取前端工程化实用工具包。

nodejs核心模块fs删除文件_用 NodeJS 重命名系统文件相关推荐

  1. (12)Node.js核心模块fs—实现文件复制和压缩

    一.文件复制 将src目录下的style.css文件复制一份,到dist目录下. 二.文件压缩 文件压缩就是把我们书写的代码中的空格和注释进行删除,这样我们体积会变小,当我们上线到服务器时,给服务器造 ...

  2. filepath直接指定到文件名吗_快速实现对文件按时间的重命名

    [批处理]自动按日期重命名文件名 按以下方式操作(以WINDOWS 7操作系统为例) 1.进入需要重命名文件的文件夹. 2.在文件夹的空白处单击鼠标右键-排序方式-修改日期. 3.全选(可按住鼠标左键 ...

  3. 电脑文件夹怎么批量重命名

    不管你做什么工作,不管你能力如何,只要你有爱岗敬业的精神,才能把工作做好.那么你面对电脑文件夹是怎么管理的呢?你是否会定期对电脑文件夹进行批量重命名整理?其实对电脑文件夹的整理也是我们工作中很重要的一 ...

  4. Java 文件操作二(重命名、设置只读、是否存在、指定目录中创建文件、获取文件修改日期、创建文件、文件路径比较)

    文件重命名 import java.io.File;public class Main {public static void main(String[] args) {File oldName = ...

  5. 怎么对文件夹进行随机重命名?怎么批量给多个文件夹生成随机名称?

    概要:之前我们介绍过对文件名称进行随机重命名,今天给大家带来的是批量重命名文件夹的功能.这个功能在某些场景下也是非常有用的,那怎么批量给多个文件夹生成随机名称呢?我们可以一起看看下具体的操作! 效果预 ...

  6. 使用re进行文件夹的批量重命名

    使用re进行文件夹的批量重命名 import os import re filepath = "E:\面授基础高等数学-汤家凤" # 文件夹路径 #对目录下的文件进行遍历 for ...

  7. Linux命令之移动文件与目录或重命名

    概述 mv 命令可用于移动文件和目录,还可以用于对文件或目录进行重命名.mv 是 move 的缩写. 语法 mv 命令的语法如下: # 重命名 mv [选项] 旧名文件 新名文件 # 移动文件 mv ...

  8. php文件夹操作:读取文件夹、批量重命名文件

    以读取从网上下载的评书解压后的文件夹为例,并批量重命名 文件夹内容如下,现在使用php读取这个文件夹里面的文件,并批量重命名为"隋唐演义+序号.mp3"的格式: <?php ...

  9. nodejs fs创建文件_节点FS – NodeJS创建文件,读取文件,写入文件

    nodejs fs创建文件 Node FS stands for NodeJS File System module. In my previous post, we have already dis ...

最新文章

  1. iPhone开发:抢先拥抱软件开发的未来
  2. JavaScript基本语法(续)
  3. Android 应用软件开发(九)控件续
  4. 图论--LCA--在线RMQ ST
  5. 【Pytorch神经网络基础理论篇】 07 线性回归 + 基础优化算法
  6. 如何通过Python玩转小视频
  7. 黑客攻防技术宝典Web实战篇第2版—第4章 解析应用程序
  8. 2017.9.17 选数 失败总结
  9. 直播视频网站源码,延迟的几种方式
  10. 2D开源游戏引擎调研报告(一)
  11. chm打开,显示“已取消到该网站的导航”
  12. matlab中tdma源程序,40MF-TDMA系统中多用户多业务的无线接入控制和时隙分配算法MATLAB源代码...
  13. JPress安装部署及模板开发
  14. MU计算机里代表什么,计算器上M+、M-、MU、GT等分别代表意思-mu代表啥
  15. GitHub上传项目以及修改(仅供自己记录学习)
  16. 技术与市场脱钩?90%的程序员都错了!
  17. 5个AI人工智能平台推荐,绘画、写作文案、文章一键生成
  18. 面向对象设计的23种设计模式
  19. 微信公众平台测试帐号申请网址
  20. 【Pytorch Lighting】第 7 章:半监督学习

热门文章

  1. python记忆式键入_Python基础
  2. obs多推流地址_苹果手机IOS系统:抖音+易推流直播手机游戏——墨涩网
  3. alxctools索引超出了数组界限_[译]V8中的数组类型
  4. java控制台高级_K9s Kubernetes的高级控制台
  5. oracle 同一列数据不同条件分组求和_艾瑞教育:有关Oracle数据库,你需要知道的几件事...
  6. mysql 多个密码登录_mysql 多实例登录密码测试
  7. Win11如何查看电池情况 Win11查看电池情况的方法
  8. UC浏览器如何调节手机屏幕亮度
  9. @MapperScan和@ComponentScan使用问题
  10. @RequestBody 和 @RequestParam可以同时使用