nodejs之fs模块
2020-12-22 06:29
                         标签:creat   fun   out   var   ini   ejs   div   pat   完成    const fs = require(‘fs‘); 读取当前文件夹下面的文件及目录,不能读取子文件及子目录 只能删除空目录 如果创建时该文件存在,执行替换操作;如果创建时该文件不存在,创建文件并执行写入操作。 flags 参数可以是以下值: nodejs之fs模块 标签:creat   fun   out   var   ini   ejs   div   pat   完成    原文地址:https://www.cnblogs.com/zhenling/p/14002648.html
1、引入fs模块
2、常用方法
1、fs.stat	检测是文件还是目录
fs.stat(‘./test.html‘,(err,data)=>{
    if(err){
        console.log(err);
        return;
    }
    console.log(data.isFile);
    console.log(data);
})
2、fs.mkdir	创建目录
fs.mkdir(‘./css‘,(err)=>{
    if(err){
        console.log(err);
        return;
    }
    console.log("创建成功");
}) 
3、fs.readdir	读取目录
fs.readdir("./css",(err,data)=>{
     if(err){
         console.log(err);
         return;
     }
     console.log(data);
 }) 
4、fs.rmdir	删除目录
 fs.rmdir("./css/base",(err)=>{
    if(err){
        console.log(err);
        return;
    }
    console.log("删除目录成功");
})
5、fs.writeFile	创建写入文件
fs.writeFile(‘./css/index.css‘,"hello1",(err)=>{
    if(err){
        console.log(err);
        return;
    }
    console.log(‘创建文件成功‘);
})
6、fs.appendFile	文件追加内容
fs.appendFile("./css/index.css","\nbody{color:red}",(err)=>{
    if(err){
        console.log(err);
        return;
    }
    console.log("appendFile成功");
}) 
7、fs.readFile	读取文件
fs.readdir("./css",(err,data)=>{
     if(err){
         console.log(err);
         return;
     }
     console.log(data);
 }) 
8、fs.unlink	删除文件
fs.unlink("./css/base/base.css",(err)=>{
    if(err){
        console.log(err);
        return;
    }
    console.log("删除文件成功");
})
9、fs.rename	移动文件or重命名文件
fs.rename("./css/aaa.css","./css/bbb.css",(err)=>{
     if(err){
         console.log(err);
         return;
     }
     console.log("移动文件成功");
 })
10、判断服务器上有没有upload目录,如果没有就创建这个目录,如果有就不做操作。
let path="./base"
fs.stat(path,(err,data)=>{
    //报错即目录不存在,创建目录
    if(err){
        console.log(err);        
        mkdir(path);
        return;
    }
    /*未报错,判断是目录还是文件:
    如果是目录,不做任何操作;  
    如果是文件,删除文件再创建同名目录;*/
    if(data.isFile){
        unlinkfs(path);
        mkdir(path);
    }else{
        console.log("目录已存在");
    }    
})
function mkdir(dir){
    fs.mkdir(dir,(err)=>{
        if(err){
            console.log(err);
            return;
        }
        console.log("创建目录成功");
    }) 
}
function unlinkfs(file){
    fs.unlink(file,(err)=>{
        if(err){
            console.log(err);
            return;
        }
        console.log("删除文件成功");
    })
}
11、检测某个目录下面有哪些子目录及文件,找出该目录下所有的目录,然后放到数组中
const fs = require(‘fs‘);
let path = "./test";
let dirArr = [];
fs.readdir(path,(err,data)=>{
    if(err){
        console.log(err);
        return;
    }
    
    /*for(var i=0;i12、fs.createReadStream(path[, options])读取流
const fs = require(‘fs‘);
let readStream = fs.createReadStream("./test.txt");
let cont =0;
let str="";
readStream.on("data",(data)=>{
    str+=data;
    cont++;
})
readStream.on("end",()=>{
    console.log(str);
    console.log(cont);
})
readStream.on("err",(err)=>{
    console.log(err);
})
13、fs.createWriteStream(path[, options])写入流
const fs = require(‘fs‘);
let data=`人之初,性本善。性相近,习相远。
苟不教,性乃迁。教之道,贵以专。
昔孟母,择邻处。子不学,断机杼。
窦燕山,有义方。教五子,名俱扬。
养不教,父之过。教不严,师之惰。
子不学,非所宜。幼不学,老何为。`
let witerStream = fs.createWriteStream("./test.txt");
witerStream.write(data,‘utf-8‘);
witerStream.end();//标记文件末尾
witerStream.on("finish",()=>{
    console.log("写入完成");
})
witerStream.on("error",(err)=>{
    console.log(err);
})
console.log("程序处理完成");
14、pipe管道流
const fs = require(‘fs‘);
let readStream = fs.createReadStream("./fs.js");
let writeStream = fs.createWriteStream("./output.js");
readStream.pipe(writeStream);
15、文件系统标志
r		以读取模式打开文件。如果文件不存在抛出异常。
r+	以读写模式打开文件。如果文件不存在抛出异常。
rs	以同步的方式读取文件。
rs+	以同步的方式读取和写入文件。
w	以写入模式打开文件,如果文件不存在则创建。
wx	类似 ‘w‘,但是如果文件路径存在,则文件写入失败。
w+	以读写模式打开文件,如果文件不存在则创建。
wx+	类似 ‘w+‘, 但是如果文件路径存在,则文件读写失败。
a	以追加模式打开文件,如果文件不存在则创建。
ax	类似 ‘a‘, 但是如果文件路径存在,则文件追加失败。
a+	以读取追加模式打开文件,如果文件不存在则创建。
ax+	类似 ‘a+‘, 但是如果文件路径存在,则文件读取追加失败。