使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详

2020-06-17 08:01:28易采站长站整理

*/
console.log(result);

7、监听
fs.watch(filename[, options][, listener])

该方法用于监视filename的变化,filename可以是一个文件或一个目录。返回的对象是一个fs.FSWatcher

参数如下

filename <String> | <Buffer>

options <String> | <Object> 参数可选,如果options是一个字符串,则它指定了encoding。否则options应该以一个对象传入

    persistent <Boolean> 指明如果文件正在被监视,进程是否应该继续运行。默认为true

    recursive <Boolean> 指明是否全部子目录应该被监视,或只是当前目录。 适用于当一个目录被指定时,且只在支持的平台。默认为false

    encoding <String> 指定用于传给监听器的文件名的字符编码。默认为’utf8′

listener <Function> 回调函数有两个参数 (eventType, filename)。 eventType可以是’rename’或’change’,filename是触发事件的文件的名称

回调中提供的 filename 参数仅在 Linux 和 Windows 系统上支持。 即使在支持的平台中,filename 也不能保证提供。 因此,不要以为 filename 参数总是在回调中提供,如果它是空的,需要有一定的后备逻辑


fs.watch('somedir', (eventType, filename) => {
console.log(`事件类型是: ${eventType}`);
if (filename) {
console.log(`提供的文件名: ${filename}`);
} else {
console.log('未提供文件名');
}
});


var fs = require('fs');
var filename = '1.txt';
fs.watch(filename,function(eventType, _filename){
console.log(eventType);//change
if(_filename){
console.log(_filename + '发生了改变');//'1.txt发生了改变'
}else{
console.log('...');
}

})

[注意]当一个文件出现或消失在一个目录里时,’rename’也会被触发

fs目录操作
1、创建
fs.mkdir(path[, mode], callback)

参数如下:

path – 文件路径。

mode – 设置目录权限,默认为 0777。

callback – 回调函数,回调只有一个可能的异常参数


var fs = require('fs');
fs.mkdir('./1',function(err){
console.log(err);//null
})

fs.mkdirSync(path[, mode])

fs.mkdir(path[, mode], callback)的同步版本,返回undefined


var fs = require('fs');
fs.mkdirSync('./2');

2、删除
fs.rmdir(path, callback)

参数如下:

path – 文件路径。

callback – 回调函数,回调只有一个可能的异常参数