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

作者: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)核心模块还有很多有用的方法。 可以通过查看文档获取更多信息。

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

ec575c1b4bb64808c2ef733bee5a96b9.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java io流---拷贝目录

Java io流—拷贝目录 代码: package demo01;import java.io.File;public class CopyAll {public static void main(String[] args) {//拷贝源File srcFile new File("E:\\学习\\a");//拷贝目标File destFile new File("C:\\Users\\22721\\Desktop");//…

Java io流---拷贝文件夹下的所有文件和目录

Java io流—拷贝文件夹下的所有文件和目录 代码: package demo01;import java.io.*; import java.util.TreeMap;public class CopyAll {public static void main(String[] args) {//拷贝源File srcFile new File("E:\\学习\\a");//拷贝目标File destFile new Fil…

[算法] 二叉树的DFS与BFS算法 (Java) -- 痛定思痛 彻底搞懂

二叉树的DFS与BFS算法 (Java) 1.概念 ①DFS (深度优先搜索) 维基百科读一遍 定义看完, 看一遍gif ②BFS (广度优先搜索) 维基百科读一遍 gif看一遍 2. 算法实现 二叉树节点结构: public class TreeNode {int value;TreeNode left;TreeNode right;public TreeNode(int…

win10 4k分屏 eclipse等工具打开后按钮图标大小问题解决方案

1、打开显示设置 2、打开eclipse属性、直接上图:

Navicat连接Mysql 8.0.16报错:Client does not support authentication protocol requested by server?

解决方法的命令如下: 切换到mysql安装目录下 :C:\Program Files\MySQL\MySQL Server 8.0\bin 登录进去执行以下命令 use mysql; alter user rootlocalhost identified with mysql_native_password by ********; flush privileges;

基于Java学院网页的搜索引擎设计和实现

项目运行部署: 首先导入项目MyHeritrix 然后把jar包加到项目中运行类Heritrix访问地址http://localhost:8080/index.jsp创建一个job 6.然后写name和你自己的url 7.然后修改modules,只需要修改select writes和select post processors 后面导入第二个程序…

基于java springboot+mybatis学生学科竞赛管理管理系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &#x1f…

基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 &#x1f…

基于Java swing ATM简单的银行管理系统

项目介绍: 本项目是使用Java swing开发,可实现ATM系统/银行系统的基本登陆、转账、查询余额、存取款业务。界面设计比较简介 项目结构: 运行截图: 相关系统设计实现推荐: 基于java springbootmybatis电影售票网站管…

基于javaweb(springboot+mybatis)网站建设服务管理系统设计和实现以及文档报告设计

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 文末获取源码联系方式 📝 主要技…

电脑怎么重置host_电脑又双叒叕卡顿?究竟要“重装”还是“重置”?原来这区别大了...

"啊!!!"随着一声惨叫,名侦探韩博士决定去一探究竟!原来是一小伙伴们的电脑又双叒叕卡顿了,连文件都来不及保存电脑就直接"歇菜"了。作为21世界最佳优秀青年代表,望着这一脸生无可恋的小伙伴,韩博士…

[LeetCode] 118. 杨辉三角(Java)

[LeetCode] 118. 杨辉三角(Java) 1.题目描述 给定一个非负整数 *numRows,*生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1:输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例…

基于javaweb(springboot+mybatis)宠物医院预约管理系统设计和实现以及论文报告

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅文末获取源码联系方式 📝 项目…

基于javaweb(springboot+mybatis)网上家具商城项目设计和实现以及文档报告

具体功能模块: (1) 用户注册和登录登录功能: ①用户的注册功能 : 访问网站的人根据网站的提示注册自己的账户 ②用户的登录功能 : 用户可以输入用户名和密码进行登录操作,当没有该账户的时 候,提示错误,用户必须通过…

Java SSM (springboot+mybatis)美食菜谱分享平台系统设计和实现以及论文报告

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 临近学期结束&#xff…

两次结果的绝对差值_你知道电子天平的检定和检定结果的影响因素有哪些吗?...

插播个小故事:某天一位朋友的用户对朋友说要买一台天平,制定的URS太“猖狂”没有能满足的天平,朋友硬着头皮报了一个型号,鞋子和脚不匹配,穿鞋的果然来找卖鞋子的:用户要买量程1100g,百分之一的…

基于javaweb(springboot+mybatis)网上酒类商城项目设计和实现以及文档报告

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 文末获取源码联系方式 📝 具体…

element手机验证格式_Laravel 自定义封装表单验证类

Laravel版本6.x场景:为添加或者更新用户的时候自动验证表单创建表单请求使用 Artisan 命令 make:request 来创建表单请求类:php artisan make:request Request这会在 app/Http/Requests 目录下创建一个 appHttpRequestsRequest.php 文件,修改…

基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】 🍅 文末获取源码联系方式 📝 主要功…