总的来说,fs是node的一个模块,一般用于文件管理。此模块为node内置,不需要额外npm安装~
1、fs.stat
检测是文件还是目录
例如,
在当前文件夹创建了一个html目录,并在主js文件输入以下代码:
fs.stat('./html', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log('文件:' + data.isFile());
console.log('目录:' + data.isDirectory());
})
运行后得到:
答案显而易见
2、fs.mkdir
类似于centOS写法。
fs.mkdir('./css', (err) => {
if (err) {
console.log(err);
return;
}
console.log(创建成功);
})
即可创建一个新的目录
3、fs.writeFile
创建写入文件
fs.writeFile('./html/index.html', 'hello node.js', (err) => {
if (err) {
console.log(err);
return;
}
console.log('创建写入文件成功');
})
即可在相应目录创建写入文件
4、fs.appendFile
追加文件
fs.appendFile('./css/base.css', 'body{color: red}', (err) => {
if (err) {
console.log(err);
return;
}
console.log('appendFile成功');
})
appendFile和writeFile的区别是:
appendFile再运行一次的时候,将新的内容追加到文件中
而writeFile再运行一次,
5、fs.readFile
读取文件
fs.readFile('./html/index.html', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log(data);
console.log(data.toString()); //把Buffer转成String类型
})
结果是
其中,Buffer为二进制数据
6、fs.readdir
读取目录
fs.readdir('./html', (err, data) => {
if (err) {
console.log(err);
return;
}
console.log(data);
})
读取目录下的目录和文件
7、fs.rename
1、重命名
fs.rename('./css/aaa.css', './css/index.css', (err) => {
if (err) {
console.log(err);
return;
}
console.log('重命名成功');
})
2、移动文件
fs.rename('./css/index.css', './html/index.css', (err) => {
if (err) {
console.log(err);
return;
}
console.log('移动文件成功');
})
8、fs.rmdir
删除目录
fs.rmdir('./aaaa', (err) => {
if (err) {
console.log(err);
return;
}
console.log('删除目录成功');
})
注意,rmdir只能删除空文件夹
这就需要用到↓
9、fs.unlink
删除文件
fs.unlink('./aaaa/index.html', (err) => {
if (err) {
console.log(err);
return;
}
console.log('删除文件成功');
})
总结一下:
1、以上方法都用到了回调函数,平时也应该注重回调函数的使用。
2、只有创建写入和追加的时候用到了mode属性。
3、写法类似于linux,linux是重要技能应牢记