Node常用API

path 文件路径处理模块

引入包

1
const path = require('path');

path 文件路径处理的相关 API

  • path.basename(path[, ext]): 获取文件名部分
  • path.dirname(path): 获取目录部分
  • path.extname(path): 获取扩展名部分
  • path.isAbsolute(path): 判断是否是绝对路径
  • path.join([…paths]): 将多个路径拼接为一个路径
  • path.normalize(path): 将一个非标准路径转为一个标准路径
  • path.resolve([…paths]): 将多个路径拼接为一个绝对路径
  • path.sep: 获取操作系统路径分隔符
  • path.format(pathObject): 将一个对象转成路径

fs 文件操作模块

引入包

1
const fs = require('fs');

fs 文件操作的相关 API

  • fs.writeFile(file, data, callback):文件写入
  • fs.appendFile(file, data, callback):文件追加
  • fs.readFile(file[, options], callback):文件读取
  • fs.unlink(path, callback):删除文件
  • fs.stat(path, callback):获取文件信息
  • fs.access(path, callback):验证文件路径是否存在
    • fs.access(‘路径’, callback(err))
      • 如果没有错误,说明路径存在
      • 如果有错误,说明路径不存在
  • fs.rename(oldPath, newPath, callback):重命名或移动文件

目录操作常用API

  • fs.mkdir(path, callback):创建一个目录
  • fs.rmdir(path, callback):删除一个空目录
    • 该 API ,只能删除一个空目录
    • 如果想要删除一个非空目录,自己写代码:递归思路
  • fs.readdir(path, callback):读取一个目录
  • fs.rename(oldPath, newPath, callback):重命名或移动目录

获取文件信息

  • fs.stat(path,callback)
1
2
3
4
5
6
7
8
9
10
11
const fs = require('fs');
fs.stat('./a', (err.stats) => {
if (err) {
throw err
}
if (stats.isFile()) {
console.log('是文件');
} else if (stats.isDirectory()) {
console.log ('是目录');
}
});
  • stats.isFile()
  • stats.isDirector()
  • stats.isBlockDevice()
  • stats.isCharacterDeveice()
  • stats.isSymbolicLink()
  • stats.isFIFO()
  • stats.isSocket()
  • stats.size; 文件大小
  • stats.atime; 最后一次访问时间
  • stats.mtime; 最后一次修改时间
  • stats.ctime; 创建时间和修改时间
  • stats.birthtime; 创建时间

监视

  • fs.watchFile(filename[, options], listener)
  • fs.watch(filename[, options][, listener])

Node 支持的编码类型

  • ascii
  • utf8
    • 万国码
  • utf16le
  • ucs2
  • base64
    • 图片编码
  • latin1
  • binary
  • hex

Node 不支持 gbk,所以去社区中找可用的第三方包来解决中文 GBK 编码问题。

文件流

  • fs.createReadStream(src);
  • fs.createWriteStream(des);
  • fs.statSync(src).size;
  • writeStream.write(data);
  • writeStream.end();
  • readStream.pipe(writeStream);

未完待续…

感谢您的支持!