1、fs.stat()
fs.stat检测是文件还是目录
fs.stat('./html', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log(`是文件:${data.isFile()}`);
console.log(`是目录:${data.isDirectory()}`);
})
打印出:
是文件:false
是目录:true
fs.stat('./package.json', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log(`是文件:${data.isFile()}`);
console.log(`是目录:${data.isDirectory()}`);
})
打印出:
是文件:true
是目录:false
2、fs.mkdir()
fs.mkdir创建目录
在该级目录下创建一个名为css的文件夹:
fs.mkdir('./css', (err) => {
if (err) {
console.log(err);
return;
}
console.log('创建成功');
})
打印出:
创建成功
3、fs.writeFile()
fs.writeFile创建写入文件
fs.writeFile('./html/index.html', '你好nodejs', (err) => {
if (err) {
console.log(err);
return;
}
console.log('创建写入文件成功');
})
打印出:
创建写入文件成功
(其中index.html中的内容为你好nodejs)
4、fs.appendFile()
fs.appendFile追加文件
fs.appendFile('./css/base.css', 'body{color:red}', (err) => {
if (err) {
console.log(err);
return;
}
console.log('appendFile 成功');
})
打印出:
appendFile 成功
(其中base.css中的内容为body{color:red})
5、fs.readFile()
fs.readFile读取文件
fs.readFile('./html/index.html', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log(data); //输出
console.log(data.toString()); //把Buffer转化为string类型 输出 你好nodejs
})
打印出:
你好nodejs
6、fs.readdir()
fs.readdir读取目录
读取html文件夹下的文件:
fs.readdir('./html', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log(data);
})
打印出:
[ ‘index.html’ ]
7、fs.rename()
fs.rename 重命名
将base.css文件重命名为index.css:
fs.rename('./css/base.css', './css/index.css', (err) => {
if (err) {
console.log(err);
return;
}
console.log('重命名成功');
})
打印出:
重命名成功
8、fs.unlink()
fs.unlink删除文件
将aaa目录下的aaa.html文件删除:
fs.unlink('./aaa/aaa.html', (err) => {
if (err) {
console.log(err);
return;
}
console.log('删除目录成功');
})
打印出:
删除目录成功
9、fs.rmdir()
fs.rmdir删除目录
删除aaa目录:
fs.rmdir('./aaa', (err) => {
if (err) {
console.log(err);
return;
}
console.log('删除目录成功');
})
打印出:
删除目录成功
定义一个isDir方法来判断一个资源到底是目录还是文件
const fs = require('fs');
async function isDir(path) {
return new Promise((resolve, reject) => {
fs.stat(path, (error, stats) => {
if (error) {
console.log(error);
reject(error);
return;
}
if (stats.isDirectory()) {
resolve(true);
} else {
resolve(false);
}
})
})
}
循环遍历(其中root目录下有css、imgs、js三个文件夹):
function main() {
var path = '../demo4/root';
var dirArr = [];
fs.readdir(path, async(err, data) => {
if (err) {
console.log(err);
return;
}
for (var i = 0; i < data.length; i++) {
if (await isDir(path + '/' + data[i])) {
dirArr.push(data[i]);
}
}
console.log(dirArr);
})
}
main();
打印出:
[ ‘css’, ‘imgs’, ‘js’ ]
fs.createReadStream从文件流中读取数据:
const fs = require('fs');
var readStream = fs.createReadStream('./data/input.txt');
var count = 0;
var str = '';
readStream.on('data', (data) => {
str += data;
count++;
console.log(data);
console.log(data.toString());
})
readStream.on('end', () => {
console.log(str);
console.log(count);
})
readStream.on('error', (err) => {
console.log(err);
})
打印出:
123123123
123123123
1
(打印出来的是data目录下input.txt文件里的内容)
fs.createWriteStream写入文件:
const fs = require('fs');
var str = '';
for (var i = 0; i < 50; i++) {
str += '嘿嘿嘿\n';
}
var writeStream = fs.createWriteStream('./data/output.txt');
writeStream.write(str);
//标记写入完成
writeStream.end();
writeStream.on('finish', () => {
console.log('写入完成');
})
打印出:
写入完成
(在data目录下自动创建output.txt文件,文件里的内容为str)