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

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


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


fs.rmdirSync(path, callback)

fs.rmdir(path, callback)的同步版本,返回undefined


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

3、读取
fs.readdir(path[, options], callback)

参数如下:

path <String> | <Buffer>

options <String> | <Object> 可选的 options 参数用于传入回调的文件名,它可以是一个字符串并指定一个字符编码,或是一个对象且由一个 encoding 属性指定使用的字符编码。 如果 encoding 设为 ‘buffer’,则返回的文件名会被作为 Buffer 对象传入

    encoding <String> 默认 = ‘utf8’

callback <Function> 回调有两个参数 (err, files),其中 files 是目录中不包括 ‘.’ 和 ‘..’ 的文件名的数组


var fs = require('fs');
fs.readdir('./',function(err,data){
console.log(err);//null
/*
[ '.csslintrc',
'.jshintrc',
'a.txt',
'dist',
'Gruntfile.js',
'Gruntfile1.js',
'index.html',
'main.js',
'node_modules',
'package.json',
'src' ] */
console.log(data);
})


var fs = require('fs');
fs.readdir('./',function(err,data){
data.forEach(function(item,index,arr){
fs.stat(item,function(err,stats){
if(stats.isFile()){
console.log('文件:' + item);
}
if(stats.isDirectory()){
console.log('目录:' + item);
}
});
})
})
/*
文件:.jshintrc
文件:.csslintrc
目录:dist
文件:Gruntfile.js
文件:index.html
文件:Gruntfile1.js
文件:main.js
目录:node_modules
文件:package.json
文件:a.txt
目录:src
*/


fs.readdirSync(path[, options], callback)

fs.readdir(path[, options], callback)的同步版本,返回一个不包括 ‘.’ 和 ‘..’ 的文件名的数组


var fs = require('fs');
var result = fs.readdirSync('./');
/*
[ '.csslintrc',
'.jshintrc',
'a.txt',
'dist',
'Gruntfile.js',
'Gruntfile1.js',
'index.html',
'main.js',
'node_modules',
'package.json',
'src' ] */
console.log(result);

遍历目录

遍历目录是操作文件时的一个常见需求。比如写一个程序,需要找到并处理指定目录下的所有JS文件时,就需要遍历整个目录

遍历目录时一般使用递归算法,否则就难以编写出简洁的代码。递归算法与数学归纳法类似,通过不断缩小问题的规模来解决问题