Node.js fs文件系统相关操作

Posted 开到荼蘼223's

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js fs文件系统相关操作相关的知识,希望对你有一定的参考价值。

Node.js文件系统

在Node.js中fs模块提供一组文件操作API用于文件系统进行交互,fs模块支持FS常量,包括文件可访问性、文件复制、文件打开、文件类型和文件模式的常量。

fs模块共有五大类

  • fs.Dirent 指示文件类型
  • fs.FSWatcher 监视文件
  • fs.ReadStream 读取流
  • fs.WriteStream 写入流
  • fs.Stats 文件的信息

fs模块包含同步文件操作异步文件操作两大类API方法,大多数文件操作提供同步和异步两种方式,异步操作方法或函数的最后一个参数总是一个回调函数.异步操作方法支持同时处理多个任务,阻塞少、性能高、速度快,同步操作将阻塞整个进程,直到所有任务完成。

同步方法:方法名带有Sync后缀
异步方法:方法名不带由Sync后缀,最后一个参数都是回调函数

fs基本操作

异步读取文件
fs.readFile(path[, options], callback) 异步操作

//异步读取文件
const fs = require('fs');
fs.readFile('e:/N/world.txt',(err,data)=>
    if(err)
        console.log(err);
     // throw err;
    
    console.log('文件内容是:'+data.toString());
)
console.log('----over-----');

同步读取文件
fs.readFileSync(path[, options]) 同步操作

const fs = require('fs');
var data = fs.readFileSync('e:/n/world.txt');
console.log('文件的内容是:'+data.toString());
console.log('----over-----');

文件重命名
fs.rename(oldpath,newpath, callback) 异步

// 导入fs模块
const fs = require('fs');
fs.rename('e:/N/word.txt','e:/N/word13.txt',(err)=>
    if(err)// 重命名错误
        console.log(err);
    ;
    console.log('重命名成功');
)
console.log('---------');

fs.renameSync(oldpath,newpath) 同步

const fs = require('fs');
fs.renameSync('e:/N/word.txt','e:/N/word13.txt');

检查文件属性

fs.stat(path[, options], callback) 异步操作

stats.isFile() 如果 fs.Stats 对象描述普通的文件,则返回 true。
stats.isDirectory() 如果 fs.Stats 对象描述文件系统目录,则返回 true。

const fs = require('fs');
fs.stat('e:/n/world.txt',(err,stats)=>
    if(err)
        throw err;
    
    console.log('是否是文件:',stats.isFile()); //true
    console.log('是否是目录:',stats.isDirectory()); //false
)

fs.statSync(path[, options]) 同步操作

const fs = require('fs');
var stats = fs.statSync('e:/n/world.txt');
console.log('是否是文件:',stats.isFile()); //true
console.log('是否是目录:',stats.isDirectory()); //false

文件模式
文件模式即文件权限,fs模块遵循POSIX文件操作规范,使用类Unix系统的权限表示方法。

访问权限

文件系统标识

打开文件
fs.open(path, '文件标志符', callback) 异步操作
在Node.js中每操作一个文件,文件描述符都是会自动递增的,文件描述符一般从3开始

const fs = require('fs');
console.log("准备打开文件");
//r+表示以读写模式打开,fd为返回的文件描述符
fs.open('demo.txt', 'r+', function(err, fd) 
    if (err) 
        return console.error(err);
    
    console.log("文件打开成功!");
);

fs.openSync('文件名',文件标记符) 同步操作

文件内容追加
fs.appendFile(path,'追击内容')

fs.appendFile('e:/n/world.txt','hello world',(err)=>
    if(err)
        throw err
    
    console.log('文件追加内容成功')
)

创建目录
fs.mkdir(path[, options], callback) 异步创建目录

fs.mkdir('e:/n/world',recursive:true,(err)=>
    if(err ) throw err;
)

删除目录
fs.rmdir(path, callback) 异步删除目录

fs.rmdir('e:/n/world',(err)=>
    if(err) throw err
)

读取目录内容
fs.readdir(path[, options], callback) 异步读取目录内容

fs.readdir('e:/Node1',(err,files)=>
    if(err) throw err;
    files.forEach((file)=>
        console.log(file);
    );
);

以上是关于Node.js fs文件系统相关操作的主要内容,如果未能解决你的问题,请参考以下文章

十Node.js-fs模块(上)

node.js 的系统模块——fs文件操作

Node.js 文件系统操作

初识 Node.js 丨fs 文件系统模块

node.js 使用fs模块对系统文件及目录进行读写操作

Node.js 初识 fs 模块