本笔记记录fs文件模块的使用
- fs文件模块主要用于对文件和文件夹的操作,常用增删改查的操作。
- fs文件模块有很多方法,这里通过代码一一解释。
// 引入fs文件模块
const fs = require('fs');
// 1.fs.stat:检测路径下是文件还是文件夹
fs.stat('../',( err, Stats ) => {
//判断路径下有没有文件或者文件夹
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
// 判断是文件还是文件夹
// E:\web_workplace\web-nodejs\02-urlandfs判断这个路径最后是文件夹还是文件
console.log(`文件:${Stats.isFile()}`); //false
console.log(`文件夹:${Stats.isDirectory()}`); //true
});
// 2.fs.mkdir:创建文件夹
// 注意:同一个文件夹名不能反复创建
fs.mkdir('javascript', (err) => {
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
console.log('创建文件夹成功!');
});
// 3.fs.writeFile:创建文件并写入内容
// 注意:同一内容不会在第二行反复写入,且后写入内容会覆盖前写入内容
fs.writeFile('./newfile.txt', '这是写入的内容!!!', (err)=>{
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
console.log('写入成功!');
});
// 4.fs.appendFileSync在文件中追加内容
// 可以重复追加同一内容
fs.appendFileSync('./newfile.txt','这是追加内容!');
// 5.fs.readFile:读取文件内容
fs.readFile('./newfile.txt', (err, data)=>{
// 如果读取出错,打印错误信息
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
// 直接打印出来的是Buffer格式
console.log(data); //输出结果:<Buffer e8 bf 99 e6 ... 1 more byte>
// 因此需要对读的格式进行限定,引用data下的方法
// 输出结果为字符串格式,如果文件是js文件也可以打印出字符串内容
console.log(data.toString()); //输出结果:这是写入的内容!!!这是追加内容!
});
// 注意:fs.readFile读取路径如果为文件夹,则无法读取到文件夹下文件的内容
// 会报错非法操作:[Error: EISDIR: illegal operation on a directory, read]
// 6.fs.readdir:读取文件夹下的内容
fs.readdir('./javascript', (err, data)=>{
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
console.log( data ); //输出结果:[ 'file.txt', 'index.js' ]
});
// 7.fs.rename:修改文件夹或者文件的名字
fs.rename('./javascript', './renamefile', (err)=>{
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
console.log('修改文件名成功!');
})
// 8.fs.renameSync:剪切文件内容到其它路径
// 因为是剪切,原来路径文件会消失,到其它路径,并可以重命名
fs.renameSync('./newfile.txt','./javascript/renamefile.txt');
// 9.fs.rmdir:删除目录或者文件夹
// 注意:删除的文件夹下必须为空,否则会报错
fs.rmdir('./java', (err)=>{
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
console.log('删除文件夹成功!');
})
// 9.fs.unlink:删除文件
fs.unlink('./javascript/file.txt', (err)=>{
if(err){
console.log( err ); //路径出错
return false; //必须返回false退出函数,否则会报错
}
console.log('删除文件成功!');
})
- 文件模块常用方法如上,有注意要点也通过注释展现。