这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战 传送门
文件操作模块
引入模块
let fs = require('fs');
读取文件
readFile 异步读取,无需等待
fs.readFile('./text.txt',(err,date)=>{
});
readFileSync 同步操作,进行阻塞
let date = fs.readFileSync('./text.txt');
文件写入
writeFile 异步写入
//异步版本的写入
fs.writeFile('./1.text','我是写入的内容',(err,data)=>{
})
writeFileSync 同步写入
fs.writeFileSync('./2.text','我是同步写入的文件')
文件删除
unlink 异步删除
fs.unlink('./1.text',(err,data)=>{
})
unlinkSync 同步删除
fs.unlinkSync('./2.text');
创建文件夹
mkdir 异步创建文件夹
//异步操作创建public文件夹
fs.mkdir('./public',(err,data)=>{
})
mkdirSync 同步创建文件夹
//同步操作创建css文件夹
fs.mkdirSync('./css');
删除文件夹
//异步操作删除public文件夹
fs.rmdir('./public',(err,data)=>{
//同步操作删除css文件夹
fs.rmdirSync('./css');
获得文件具体信息(判断是不是文件夹或者文件)
//异步获取文件的具体信息
fs.stat('./1.text',(err,info)=>{
if (err) {
} else{
// info.isFile() 判断是不是一个文件 返回结果为true
// info.isDirectory() 判断是不是一个文件 返回结果为true
}
})
//同步
let file = fs.statSync('./1.text');
if(file.isFile()){
console.log('这是一个文件');
}else if(file.isDirectory()){
console.log('只是一个文件夹');
}else{
console.log('抱歉这不是一个文件或者文件夹');
}
读取文件夹里面的所有文件
//异步读取文件夹里面的所有文件
fs.readdir('./public',(err,files)=>{
files.forEach((x)=>{
console.log('有'+ x +'这个文件');
})
})
// 同步读取文件
let files = fs.readdirSync('./public');
移动并可以重命名文件(剪切)
//第二个参数如果是目录里面的文件的话他就会把文件移动
//如果单独只是文件名的话他就会把文件重命名
fs.rename('./1.text','./public/index.html',(err,data)=>{
})
// 同步操作移动并重命名文件
fs.renameSync('./public/index.html','./index.html');
复制并重命名文件(复制)
//异步复制并重命名文件
fs.copyFile('./1.text','./public/index.html',(err)=>{
})
// 同步操作复制并重命名文件
fs.copyFileSync('./index.html','./public/index.html');
模块 pipe方法大文件复制
var fs = require('fs');
//创建读取流
var readStream = fs.createReadStream('./1.zip');
//创建写入流
var writeStream = fs.createWriteStream('./2.zip');
//进行大文件的复制
readStream.pipe(writeStream);