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");//…

套口机跳针修理带图_套口机维修注意事项

套口机维修几点注意事项:首先要仔细检查、剖析套口机断线首要是什么缘由发生的断线。缝神总结以下几点与我们讨论:1、作业开端断线,即是说车工踏下踏板,刚开端缝就断了。缘由是榜首夹线器太紧了,留下的线头太短&#x…

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…

k8s挂载目录_K8S中挂载目录引发的血案!

在kubernetes中部署前端项目(使用nginx作为服务器)的时候,遇到了一个报错,报错信息如下2019/11/19 02:16:31 [emerg] 1#1: open() "/etc/nginx/mime.types" failed (2: No such file or directory) in /etc/nginx/nginx.conf:14nginx: [emerg] open() "/etc/ngi…

[LeetCode] 1. 两数之和 (Java)

[LeetCode] 1. 两数之和 (Java) 1. 题目描述 力扣两数之和传送门 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff…

tcpsyn发生在哪层_必看面试题之计算机网络:来自一位拿到了腾讯和字节双offer的大佬...

有小伙伴反映上篇文不全面,深觉文笔有限,于是,给大家分享一篇牛客网面上了腾讯和字节跳动的大佬的计算机网络面试相关知识点的总结。

[LeetCode] 1108. IP 地址无效化 (Java)

[LeetCode] 1108. IP 地址无效化 (Java) 1. 题目描述 力扣传送门 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。 示例 1: 输入:address “1…

移动端web设计尺寸_移动端H5页面的设计稿尺寸大小规范

当我们在做手机端H5网页设计稿时(当然包含微信端的H5网页设计),如果没有做过类似的移动端的设计,UI设计师和前端工程师肯定会纠结的。如果是app设计师,就不会那么纠结啦。那么多手机屏幕尺寸,设计稿应该按照哪一个尺寸作为标准尺寸…

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

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

mybatis返回map键值对_mybatis返回map key怎么指定

展开全部一、概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,636f7079323131333532363134313032313635…

[LeetCode] 485.最大连续 1 的个数(Java)

[LeetCode] 485.最大连续 1 的个数(Java) 1.题目描述 力扣传送门 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。 示例 1:输入:nums [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 &…

两个音轨合并_两个双音轨mkv视频合并保持原双音轨不变 MKV怎么合并视频,合并之后仍保留MKV的双音轨...

在写文之前先说明下,笔者在双音轨处理方面接触不久,也只算是半吊子,离砖家级别还有些距离滴,若有不足的地方,欢迎大家补充哈。今天突然想到mkv视频合并的问题,就是MKV怎么合并视频,合并之后要保…

[LeetCode] 495. 提莫攻击 (Java)

[LeetCode] 495. 提莫攻击 (Java) 1.题目描述 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒…

conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解

Conv2d的简单使用torch 包 nn 中 Conv2d 的用法与 tensorflow 中类似,但不完全一样。在 torch 中,Conv2d 有几个基本的参数,分别是in_channels 输入图像的深度out_channels 输出图像的深度kernel_size 卷积核大小,正方形卷积只为单…

Tomcat内存释放不了、Tomcat内存溢出原因

公司的tomcat又挂掉了,之前挂了一次.出现以下错误,后来把tomcat的内存增大到1024 严重: Exception initializing page context java.lang.OutOfMemoryError: Java heap space 在tomcat\bin\catalina.bat的set CURRENT_DIR%cd% 前面添加 set JAVA_OPTS -Xms5…

[LeetCode] 414.第三大的数(Java)

[LeetCode] 414.第三大的数(Java) 1.题目描述 给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 示例 1:输入:[3, 2, 1] 输出:1 解释:第三大的数是 1 。 示例 2&#xff…

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

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

python用海伦公式求面积_Python:平面直角坐标系下用三点求所构三角形面积

我使用了一种特殊方式,计算平面直角坐标系下三点所构成(如果可行的话)的三角形的面积。这个方法,不同於常见的海伦公式。设此三点坐标分别为:算出最大最小的 与 ,并根据三点坐标,虚构出一个矩形…

[LeetCode] 628. 三个数的最大乘积(Java)

[LeetCode] 628. 三个数的最大乘积(Java) 1.题目描述 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1:输入:nums [1,2,3] 输出:6 示例 2:输入:nums …

[INS-30131] 执行安装程序验证所需的初始设置失败。

安装oracle11g或12C碰到“无法访问临时位置”的问题,详细信息如下: [INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置) 操作 - 请确保当前用户具有访问临时位置所需的权限。 解决方案1&#xff…