Nodejs基础3之fs模块的文件重命名和移动、文件的删除、文件夹操作、查看资源状态、fs路径

Nodejs基础二

  • fs模块
    • 文件重命名和移动
      • 文件的重命名
      • 文件的移动
      • 同步重命名和移动
    • 文件的删除
      • 使用unlink进行删除
        • unlink异步删除
        • unlinkSync同步删除
      • 使用rm进行删除
        • rm异步删除
        • rmSync同步删除
    • 文件夹操作
      • 创建文件夹
        • 递归创建文件夹
      • 读取文件夹
      • 删除文件夹
        • rmdir删除文件夹
        • 删除递归文件夹
        • 使用rm删除文件夹(建议使用)
    • 查看资源状态
    • fs路径
      • 相对路径
      • 绝对路径
      • 相对路径的一个小bug
        • 解决

fs模块

文件重命名和移动

在 Node.js 中,我们可以使用 rename 或 renameSync 来移动或重命名 文件或文件夹
语法:

fs.rename(oldPath, newPath, callback)
fs.renameSync(oldPath, newPath)

参数说明:

  • oldPath 文件当前的路径
  • newPath 文件新的路径
  • callback 操作后的回调

文件的重命名

//1.导入fs模块
const fs=require('fs')//2.调用rename方法
fs.rename('./座右铭.txt','./论语.txt',err=>{if(err){console.log("重命名失败!")return;}console.log("重命名成功!")
})

代码执行前:
在这里插入图片描述
代码执行后:
在这里插入图片描述

文件的移动

//文件的移动
const fs=require('fs')fs.rename('./练习文档/清平调.txt','./资料/test/清平调.txt',err=>{if(err){console.log("移动错误")return;}console.log("移动成功")
})

移动前:
在这里插入图片描述

移动后:
在这里插入图片描述
在这里插入图片描述

同步重命名和移动

const fs=require('fs')
//同步重命名
fs.renameSync('./练习文档/数据.txt','./练习文档/data.txt')//同步移动
fs.renameSync('./练习文档/数据.txt','./资料/test/数据.txt')

重命名前:
在这里插入图片描述
重命名后:
在这里插入图片描述
移动前:
在这里插入图片描述
移动后:
在这里插入图片描述

文件的删除

使用unlink进行删除

unlink异步删除
//1、引入fs模块
const fs=require('fs')//2、使用unlink进行删除
fs.unlink('./hello.txt',err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述

在这里插入图片描述

unlinkSync同步删除
//1、引入fs模块
const fs=require('fs')
//使用unlinkSync同步删除
fs.unlinkSync('./test文稿.txt')

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述

使用rm进行删除

rm异步删除
//1、引入fs模块
const fs=require('fs')
//2、使用rm异步删除
fs.rm('./test文稿1.txt',err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述
在这里插入图片描述

rmSync同步删除
//1、引入fs模块
const fs=require('fs')
//2、使用rmSync同步删除
fs.rmSync('./test文稿2.txt')

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述

文件夹操作

创建文件夹

在 Node.js 中,我们可以使用 mkdirmkdirSync 来创建文件夹
语法:

fs.mkdir(path[, options], callback)
fs.mkdirSync(path[, options])

参数说明:

  • path 文件夹路径
  • options 选项配置( 可选
  • callback 操作后的回调
//1、引入fs模块
const fs=require('fs')
//2、使用mkdir创建文件夹 mk == make 制作 dir == directory
fs.mkdir('./html',err=>{if(err){console.log("创建失败")return}console.log("创建成功")
})

创建前:
在这里插入图片描述
创建后:

在这里插入图片描述

递归创建文件夹
//1、引入fs模块
const fs=require('fs')//2、递归创建
fs.mkdir('./a/b/c',{recursive:true},err=>{if(err){console.log("创建失败!")return}console.log("创建成功!")
})

创建后:
在这里插入图片描述

读取文件夹

在 Node.js 中,我们可以使用 readdir 或 readdirSync 来读取文件夹
语法:

fs.readdir(path[, options], callback)
fs.readdirSync(path[, options])

参数说明:

  • path 文件夹路径
  • options 选项配置( 可选 )
  • callback 操作后的回调
//读取文件夹
//1、引入fs模块
const fs=require('fs')//2、读取文件夹
fs.readdir('./练习文档',(err,data)=>{if(err){console.log("读取失败")return}console.log("data",data)
})

在这里插入图片描述
在这里插入图片描述

删除文件夹

在 Node.js 中,我们可以使用 rmdir 或 rmdirSync 来删除文件夹
语法:

fs.rmdir(path[, options], callback)
fs.rmdirSync(path[, options])

参数说明:

  • path 文件夹路径
  • options 选项配置( 可选 )
  • callback 操作后的回调
rmdir删除文件夹
//删除文件夹
const fs=require('fs')fs.rmdir('./html',err=>{if(err){console.log("删除失败!")return}console.log("删除成功")
})

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述

删除递归文件夹
//删除递归
const fs=require('fs')fs.rmdir('./a',{recursive:true},err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述
在这里插入图片描述

使用rm删除文件夹(建议使用)
//使用rm删除文件夹
const fs=require('fs')
fs.rm('./a',{recursive:true},err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})

删除前:
在这里插入图片描述
删除后:
在这里插入图片描述

在这里插入图片描述

查看资源状态

在 Node.js 中,我们可以使用 stat 或 statSync 来查看资源的详细信息
语法:

fs.stat(path[, options], callback)
fs.statSync(path[, options])

参数说明:

  • path 文件夹路径
  • options 选项配置( 可选 )
  • callback 操作后的回调

结果值对象结构:

  • size 文件体积
  • birthtime 创建时间
  • mtime 最后修改时间
  • isFile 检测是否为文件
  • isDirectory 检测是否为文件夹
//1、导入fs模块
const fs=require('fs')fs.stat('./资料/测试.mp4',(err,data)=>{if(err){console.log("操作失败")return}console.log(data)//判断是否是文件console.log(data.isFile())//判断是否是文件夹console.log(data.isDirectory())
})

在这里插入图片描述
在这里插入图片描述

fs路径

fs 模块对资源进行操作时,路径的写法有两种:

  • 相对路径
    • ./座右铭.txt 当前目录下的座右铭.txt
    • 座右铭.txt 等效于上面的写法
    • …/座右铭.txt 当前目录的上一级目录中的座右铭.txt
  • 绝对路径
    • D:/Program Files windows 系统下的绝对路径
    • /usr/bin Linux 系统下的绝对路径

相对路径

const fs=require('fs')//相对路径
fs.writeFileSync('./练习文档/index.html','love')   //在当前目录下的练习文档中创建
fs.writeFileSync('index.html','love')   //在当前目录下创建
fs.writeFileSync('../index.html','love')  //在当前目录的上一级目录下创建

在这里插入图片描述
在这里插入图片描述

绝对路径

const fs=require('fs')//绝对路径
fs.rmSync('F:/nodejs-learning/index.html')
fs.rmSync('F:/nodejs-learning/练习文档/index.html')

在这里插入图片描述

相对路径的一个小bug

const fs=require('fs')//相对路径的参照物:命令行的工作目录
fs.writeFileSync('./index.html','love')

代码执行方式:
在这里插入图片描述
在这里插入图片描述

解决
const fs=require('fs')//绝对路径'全局变量'保存的是:所在文件的所在目录的绝对路径
console.log("__dirname",__dirname)
fs.writeFileSync(__dirname+'/index.html','love')

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

电脑怎么把照片的kb缩小?三种方法帮你解决

电脑怎么把照片的kb缩小?我们在进行上传图片的时候,经常遇到图片太大,请压缩后再上传的情况,这就是我们开头所需要了解的压缩图片大小的方法,图片缩小kb可以通过三种处理方式来达到效果,我们可以直接图片压…

46道java基础知识面试题详解含答案(值得珍藏)

final 有什么用? 用于修饰类、属性和方法;被final修饰的类不可以被继承被final修饰的方法不可以被重写被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改…

在线协作白板WBO本地部署启动并结合内网穿透实现远程协同办公

文章目录 推荐前言1. 部署WBO白板2. 本地访问WBO白板3. Linux 安装cpolar4. 配置WBO公网访问地址5. 公网远程访问WBO白板6. 固定WBO白板公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击…

【LeetCode: 208. 实现 Trie (前缀树)】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

一分钟带你了解--电商控价

电商行业发展至今带来了许多机遇,但同时也伴随着一些挑战。品牌电商在运营过程中,面临着诸如乱价、低价、窜货和假货等问题,这些问题不仅损害了品牌的形象和价值,也破坏了市场秩序,侵害了消费者的权益。 电商控价是解…

深度探讨 Golang 中并发发送 HTTP 请求的最佳技术

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在 Golang 领域,并发发送 HTTP 请求…

java常用API(2)

1:String 1.1 String(构造方法) 首先,我们先来学习String类,它涉及到两个案例:用户登录和聊天室。 先来看用户登录案例:需要输入用户名和密码,和已知的用户名和密码进行比较,涉及到比较的方法…

抖音小店如何选品?新手怎么选有潜力的产品?常用选品玩法分享

大家好,我是电商花花。 选品是我们店铺出单的关键,也是我们做电商行业的小伙伴非常关心的一个点。 我们想要选好商品,我们就要先搞清楚,什么样的产品才算是有潜力的产品,什么样的产品才能出单,什么样的产…

使用pandas读取HTML和JSON数据

大家好,Pandas是一个功能强大的数据分析库,它提供了许多灵活且高效的方法来处理和分析数据。本文将介绍如何使用Pandas读取HTML数据和JSON数据,并展示一些常见的应用场景。 一、读取HTML网页 HTML(超文本标记语言)是…

【HTML5】 canvas 绘制图形

文章目录 一、基本用法二、用法详见2.0、方法属性2.1、绘制线条2.2、绘制矩形2.3、绘制圆形2.4、绘制文本2.5、填充图像 一、基本用法 canvas 标签:可用于在网页上绘制图形(使用 JavaScript 在网页上绘制图像)画布是一个矩形区域&#xff0c…

MATLAB R2023b for Mac 中文

MATLAB R2023b 是 MathWorks 发布的最新版本的 MATLAB,适用于进行算法开发、数据可视化、数据分析以及数值计算等任务的工程师和科学家。它包含了一系列新增功能和改进,如改进了数据导入工具,增加了对数据帧和表格对象的支持,增强…

从零到一:设计实现Dubbo分布式服务框架

从零到一:设计实现Dubbo分布式服务框架 前言 Dubbo是一款高性能的Java RPC框架,广泛应用于大规模的分布式系统。本篇博客将详细介绍如何从零开始设计和实现一个简单的Dubbo框架,以便理解Dubbo的核心概念和工作原理。 第一步:定…

医疗电子市场分析:预计2029年将达到2204亿美元

随着人口老龄化趋势日益明显,高效、精准、全面的医疗服务需求将迅速增长,医疗电子行业将迎来广阔的市场前景。医疗电子是指将电子技术和信息技术与医学相结合,应用于医疗领域的技术和产品。其主要目的是通过电子技术来实现医疗设备和系统的智…

面试150-69(Leetcode104二叉树的最大深度)

代码: 0117 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode righ…

Python | 五、面向对象、Class类

面向对象 各类事物在编程语言中可以表示为抽象的类 属性用来表示类的基本特征方法用来实现类的基本功能 为了把事物具体化,需要通过创建实例化对象来完成 Class类的定义 命名,使用大驼峰标准,如class MyName:class类中有一个self参数&…

手机上最危险的3个操作,千万小心!

普通人千万不要在手机上做这3个操作,否则你的手机早晚会被黑客入侵了。 第一种,苹果越狱 越狱虽然可以绕过限制给你的苹果安装上一些特殊软件,但只要是越狱之后的苹果手机,都将留下漏洞,黑客最喜欢寻找做过越狱的手机…

nginx离线安装

安装包准备: 上传安装包到linux系统 一、进入gcc目录,执行以下命令 rpm -Uvh *.rpm --nodeps --force gcc -v查看版本 二、 进入gcc-c目录,执行命令 rpm -Uvh *.rpm --nodeps --force g -v查看版本 三、安装PCRE 解压: t…

众和策略:券商又念“紧箍咒” 绕标套现的头疼了

又有券商对两融事务念“紧箍咒”。 近来,记者从广发证券获悉,该公司已发布《关于调整融资融券负债归还规矩的告诉》,自2024年1月15日起,决议禁止融资买入证券用于归还融券负债。 相关业内人士以为,自上一年10月融资融…

华为交换机配置NQA DNS检测IP网络DNS解析速度

华为HCIA视频教程:超级实用,华为VRP系统文件详解 华为HCIA视频教程:不会传输层协议,HCIA都考不过 华为HCIA视频教程:网络工程师的基本功:网络地址转换NAT 华为HCIP视频教程:DHCP协议原理与配…

js 正则表达式 校验 input输入框 输入格式必须为日期yyyyMM

要使用正则表达式校验 input 输入框的输入格式是否为日期格式 “yyyyMM”,你可以使用以下 JavaScript 正则表达式: const regex /^(\d{4})(\d{2})$/;这个正则表达式匹配的是四位数年份和两位数月份,确保输入的格式为 “yyyyMM”。 以下是一…