我的编程空间,编程开发者的网络收藏夹
学习永远不晚

node中的path模块和fs模块怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

node中的path模块和fs模块怎么用

本篇内容介绍了“node中的path模块和fs模块怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

node中的path模块和fs模块怎么用

path模块

path模块用于对路径和文件进行处理,提供了很多方法。

path.resolve

有一个需求是将路径和文件名进行拼接。

const basePath = '/user/why'
const filename = 'abc.txt'

那么有人会使用字符串拼接的方式进行拼接。

const filePath = basePath + '/' + filename
console.log(filePath);

这样的结果虽然没有问题,但是考虑到不同的系统,windows系统可以使用\或者\\或者/作为路径分隔符,而Mac OS、Linux的Unix操作系统使用/作为路径分隔符。

node中的path模块和fs模块怎么用

解决上述问题,我们可以使用path.resolve来进行路径的拼接。

const path = require('path')

const basePath = '/user/why'
const filename = 'abc.txt'

const filePath = path.resolve(basePath, filename)

console.log(filePath);

node中的path模块和fs模块怎么用

从路径中获取信息

  • dirname:获取文件的父文件夹

  • basename:获取文件名

  • extname:获取文件扩展名

const path = require('path')

const filePath = '/User/haha/abc.txt'

console.log(path.dirname(filePath));
console.log(path.basename(filePath));
console.log(path.extname(filePath));

node中的path模块和fs模块怎么用

路径拼接

如果我们想要把多个路径进行拼接,但是不同的操作系统可能使用不同的分隔符,我们可以使用path.join函数。

const path = require('path')

const basepath = '/User/haha'
const filename = 'abc.txt'

const filePath = path.join(basepath, filename)
console.log(filePath);

node中的path模块和fs模块怎么用

将文件和某个文件夹拼接

如果我们想要将某个文件和文件夹拼接,可以使用path.resolve。

const basepath = 'User/haha'
const filename = 'abc.txt'

node中的path模块和fs模块怎么用

path.resolve和path.join一样也可以进行路径的拼接,那么它们的区别是什么呢?

const basepath = '../User/haha'
const filename = './abc.txt'
const othername = './haha.js'

const filePath2 = path.join(basepath, filename, othername)
console.log(filePath2);

const filePath3 = path.resolve(basepath, filename, othername)
console.log(filePath3);

我们可以看到它们的差别。

node中的path模块和fs模块怎么用

fs模块

nodejs文件系统的API大都提供三种操作方式:

  • 同步操作文件:代码会被阻塞,不会继续执行

  • 异步回调函数操作文件:代码不会被阻塞,需要传入回调函数,当获取到结果时,回调函数执行

  • 异步Promise操作文件:代码不会被阻塞,通过fs.promises调用方法操作,会返回一个Promise,可以通过then、catch进行处理。

读取文件状态(信息)

方式一 同步操作:fs.statSync

const fs = require('fs')

const filepath = './abc.txt'
const info = fs.statSync(filepath)
console.log('后续需要执行的代码');
console.log(info);

node中的path模块和fs模块怎么用

方式二 异步操作

fs.stat(filepath, (err, info) => {
  if(err) {
    console.log(err);
    return
  }
  console.log(info);
  console.log(info.isFile()); // 判断是否是一个文件
  console.log(info.isDirectory()); // 判断是否是一个文件夹
})
console.log('后续需要执行的代码');

方式三: Promise

fs.promises.stat(filepath).then(info => {
  console.log(info);
}).catch(err => {
  console.log(err);
})

console.log('后续需要执行的代码');

文件描述符

node为所有打开的文件分配了一个数字型的文件描述符。所有文件系统操作都使用这些文件描述符来标识和跟踪每个特定的文件。

fs.open()方法用于分配新的文件描述符fd。一旦被分配,则文件描述符可用于从文件读取数据、向文件写入数据、或请求关于文件的信息。

const fs = require('fs')

fs.open('./abc.txt', (err, fd) => {
  if(err) {
    console.log(err);
    return
  }

  // 通过文件描述符去获取文件信息
  fs.fstat(fd, (err, info) => {
    console.log(info);
  })
})

文件的读写

fs.readFile(path[, options], callback):读取文件内容

fs.writeFile(path[, options], callback):往文件中写入内容

option参数:

flag: 写入的方式

encoding:字符的编码

文件的写入

fs.writeFile('./abc.txt', content, {flag: "a"}, err => {
  console.log(err);
})

文件的读取

fs.readFile('./abc.txt', (err, data) => {
  console.log(data);
})

如果不填写encoding,返回的结果Buffer(二进制)。

node中的path模块和fs模块怎么用

fs.readFile('./abc.txt', {encoding: 'utf-8'}, (err, data) => {
  console.log(data);
})

node中的path模块和fs模块怎么用

创建文件夹

使用fs.mkdir()或者fs.mkdirSync创建一个新的文件夹。

const fs = require('fs')

// 创建文件夹
const dirname = './haha'
if(!fs.existsSync(dirname)) {
  fs.mkdir(dirname, (err) => {
    console.log(err);
  })
}

获取文件夹的内容

fs.readdir

fs.readdir(dirname, (err, files) => {
  console.log(files);
})

获取文件夹中的所有文件,此时目录如下图所示,可以使用递归。

node中的path模块和fs模块怎么用

const fs = require('fs')
const path = require('path')
const dirname = './haha'

function getFiles(dirname) {
  fs.readdir(dirname, {withFileTypes: true}, (err, files) => {
    // console.log(files);
    for(let file of files) {
      // 判断是否是文件夹
      if(file.isDirectory()) {
        const filepath = path.resolve(dirname, file.name)
        getFiles(filepath)
      } else {
        console.log(file.name);
      }
    }
  })
}

getFiles(dirname)

重命名

可以使用fs.rename对文件夹进行重命名。

fs.rename('./haha', './xixi', err => {
  console.log(err);
})

“node中的path模块和fs模块怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

node中的path模块和fs模块怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node中的fs文件模块和path路径模块怎么使用

这篇“Node中的fs文件模块和path路径模块怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Node中的fs文件模
2023-07-04

一文聊聊Node中的fs文件模块和path路径模块(案例分析)

本篇文章通过读写文件和处理路径的案例,来一起学习下Node中的fs文件模块和path路径模块,希望对大家有所帮助!
2022-11-22

Node.js中path模块,url模块,http模块怎么用

小编给大家分享一下Node.js中path模块,url模块,http模块怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!path模块Node.js中,提供了一
2023-06-29

Node中的url模块和querystring模块怎么使用

这篇文章主要讲解了“Node中的url模块和querystring模块怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node中的url模块和querystring模块怎么使用”吧!u
2023-07-05

Node.js 中如何使用fs与Path模块

Node.js 中如何使用fs与Path模块,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。概述:文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集。可以
2023-06-20

node的path路径模块怎么使用

这篇文章主要介绍了node的path路径模块怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node的path路径模块怎么使用文章都会有所收获,下面我们一起来看看吧。node的path模块前言:通过这篇文
2023-07-05

node的path模块是什么及怎么使用

这篇“node的path模块是什么及怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“node的path模块是什么及怎么
2023-07-04

一文聊聊node中的path模块

path 模块是 nodejs 中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。同时在前端开发中 path 模块出现的频率也是比较高的,比如配置 webpack 的时候等。本文是对该模块中一些常用的方法进行介绍,走,一起学习下吧。
2023-05-14

Nodejs的fs模块怎么使用

本文小编为大家详细介绍“Nodejs的fs模块怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Nodejs的fs模块怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Nodejs 中的 fs 模块的使
2023-06-29

浅析node的path路径模块

path 模块是 nodejs 中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。同时在前端开发中 path 模块出现的频率也是比较高的,比如配置 webpack 的时候等。本文就来聊聊node的path路径模块。
2023-05-14

聊聊Node中的url模块和querystring模块

url模块和querystring模块是非常重要的两个URL处理模块。在做node服务端的开发时会经常用到。
2023-05-14

node.js的path模块怎么用

这篇文章主要介绍了node.js的path模块怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.js的path模块怎么用文章都会有所收获,下面我们一起来看看吧。1、什么是path模块【解释】: pa
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录