nodejs常用模块(fs、path)

fs模块

为nodejs的核心模块之一,主要处理文件的读写、复制、s删除、重命名等操作。当需要使用该模块时,需要先导入该文件

var fs = require('fs');

1、fs.stat 检测是文件还是目录  同步方法:在结尾增加sync,如fs.statsync()

const fs = require('fs');
fs.stat('./module',(err,data)=>{
    if (err) {
        console.log(err);
        return;
    }  
    console.log(`是文件:${data.isFile()}`);
    console.log(`是目录:${data.isDirection()}`);
})

2、fs.mkdir 创建目录 用法同上,同步方法:fs.mkdirSync

const fs = require('fs');
fs.mkdir('./test',(err)=>{
    if (err) {
        console.log("创建失败");
        return;
    }
    console.log("创建成功");
})

3、fs.writeFile 创建写入文件 用法:(路径及文件名称、写入内容、回调函数), fs.writeFileSync

const fs = require('fs');
fs.writeFile('./write.js','你好',(err)=>{
    if (err) {
        console.log(err);
        return
        
    }
    console.log("创建写入成功")
})

4.fs.appendFile 写入文件 用法同上

const fs = require('fs');
fs.appendFile('./write.js','\n插入的文字',(err)=>{ // \n为换行符
    if (err) {
        console.log("写入失败"); 
    }
    console.log("写入成功");  
})

5、fs.readFile 读取文件

const fs = require('fs');
fs.readFile('./write.js',(err,data)=>{
    if (err) {
        console.log("读取错误")
        return;
    }
    console.log(data);//输出十六进制数据
    console.log(data.toString());//将十六进制转化为字符串
})

6、fs.readdir 读取目录

7、fs.rename 重命名 :1表示重命名,2表示移动文件 (用法:原文件路径及名称,新命名文件路径及名称)

const fs = require('fs');
fs.rename('./write.js','./write1.js',(err)=>{
    if (err) {
        console.log("重命名失败"); 
    }
    console.log("重命名成功");  
})

移动文件功能只需在路径中修改即可

8、fs.rmdir 删除目录 用法同上

9、fs.uplink 删除文件 用法同上

10、fs.createReadStream以流的方式读取文件

11、fs.createWariteStream以流的方式读取文件

 

path 模块

提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块:

var path = require("path")

注意:各平台(windows/mac)路径显示和拼接不一致。

序号方法 & 描述
1 path.normalize(p)
规范化路径,注意'..' 和 '.'。
2

path.join([path1][, path2][, ...])
用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'

path.join('foo', {}, 'bar');
// Throws 'TypeError: Path must be a string. Received {}'
3 path.resolve([from ...], to)
将 to 参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。 例如,给定的路径片段的序列为:/foo、/bar、baz,则调用 path.resolve('/foo', '/bar', 'baz') 会返回 /bar/baz。
path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz'

path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果当前工作目录为 /home/myself/node,
// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'
4 path.isAbsolute(path)
判断参数 path 是否是绝对路径。
5 path.relative(from, to)

用于将绝对路径转为相对路径,返回从 from 到 to 的相对路径(基于当前工作目录)。

//在 Linux 上:
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
// 返回: '../../impl/bbb'

//在 Windows 上:
path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb');
// 返回: '..\\..\\impl\\bbb'
6

path.dirname(p)
返回路径中代表文件夹的部分,同 Unix 的dirname 命令类似。

path.dirname('/foo/bar/baz/asdf/quux');
// Returns: '/foo/bar/baz/asdf'
7

path.basename(p[, ext])
返回路径中的最后一部分。同 Unix 命令 bashname 类似。

path.basename('/foo/bar/baz/asdf/quux.html');
// Returns: 'quux.html'

path.basename('/foo/bar/baz/asdf/quux.html', '.html');
// Returns: 'quux'
8

path.extname(p)
返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。

path.extname('index.html');
// Returns: '.html'

path.extname('index.coffee.md');
// Returns: '.md'

path.extname('index.');
// Returns: '.'

path.extname('index');
// Returns: ''
9

path.parse(pathString)
返回路径字符串的对象。

//mac
path.parse('/home/user/dir/file.txt');
//Returns:
{ 
root: '/',
dir: '/home/user/dir',
base: 'file.txt',
ext: '.txt',
name: 'file' 
}

//windows
path.parse('C:\\path\\dir\\file.txt');
// Returns:
{
root: 'C:\\',
dir: 'C:\\path\\dir',
base: 'file.txt',
ext: '.txt',
name: 'file' 
}
10

path.format(pathObject)
从对象中返回路径字符串,和 path.parse 相反。

path.format({
  root: '/ignored',
  dir: '/home/user/dir',
  base: 'file.txt'
});
// Returns: '/home/user/dir/file.txt'
posted @ 2022-04-25 14:55  梁涛999  阅读(291)  评论(0编辑  收藏  举报