fs 文件模块

 fs.stat   检测是文件还是目录
const fs = require('fs')
fs.stat('./testdir',(err,data)=>{
    if(err){
        console.log(err)
        return
    }
    console.log(`是文件:${data.isFile()}`)
    console.log(`是目录:${data.isDirectory()}`)
})

/**
 * 是文件:false
 * 是目录:true
 */
 fs.mkdir  创建目录
const fs = require('fs')

fs.mkdir('./testdir2',(err)=>{
    if(err){
        console.log(err)
        return
    }
    console.log("创建成功")
})
/* path: 将创建的目录路径 mode: 目录权限(读写权限),默认777 callback:回调,传递异常参数 err */

fs.writeFile  创建写入文件

如果这个文件不存在,会创建这个文件并写入,如果已存在,会执行替换操作

const fs = require('fs')

fs.writeFile('./testdir/test.txt','你好',(err)=>{
    if(err){
        console.log(err)
        return
    }
    console.log("创建写入文件成功")
})

fs.appendFile 追加文件

如果这个文件不存在,会创建这个文件并写入,如果已存在,会在这个文件后面追加内容

fs.readFile 读取文件

const fs = require('fs')
const { Console } = require('console')

fs.readFile('./testdir/test.txt',(err,data)=>{
    if(err){
        console.log(err)
        return
    }
    console.log(data) //<Buffer e4 bd a0 e5 a5 bd 68 65 6c 6c 6f>
    console.log(data.toString()) //把Buffer 转化成string类型,你好hello
})

fs.readdir读取目录 

const fs = require('fs')

fs.readdir('./testdir',(err,data)=>{
    if(err){
        console.log(err)
        return
    }
    console.log(data)
})

/**
 * [ 'test.txt' ]
 */

fs.rename 重命名   功能:①表示重命名  ②移动文件

const fs = require('fs')

fs.rename('./testdir/test.txt','./testdir/demo.txt',(err)=>{
    if(err){
        console.log(err)
        return
    }
    console.log("重命名成功")
})
fs.rename('./testdir/demo.txt','./testdir2/demo.txt',(err)=>{
    if(err){
        console.log(err)
        return
    }
    console.log("移动文件成功")
})

fs.rmdir  删除目录

当目录下有文件时,即目录不为空,不能删除,需要先删除目录中的所有文件后才能删除目录

const fs = require('fs')

fs.rmdir('./demodir',(err)=>{
    if(err){
        console.log(err)
        return
    }
    console.log("删除目录成功")
})

fs.unlink 删除文件

const fs = require('fs')

fs.unlink('./demodir/demo.txt',(err)=>{
    if(err){
        console.log(err)
        return
    }
    console.log("删除文件成功")
})
判断服务器上面有没有upload目录。如果没有创建这个目录,如果有的话不做操作
const fs = require('fs')
const path = './upload'

fs.stat(path,(err,data)=>{
    if(err){ //没有这个目录
       mkdir(path)
    }
    else if(!data.isDirectory()){ //不是文件夹,是文件
        fs.unlink(path, (err) => { //删除这个文件
            if(!err){
                mkdir(path) //再创建目录
            }
        }) 
    }
})

//创建目录
function mkdir(dir_path){
    fs.mkdir(dir_path,(err)=>{
        if(err){
            console.log(err)
            return
        }
    })
}

可以使用 mkdirp 模块直接实现

npm i mkdirp --save 
var mkdirp = require('mkdirp');

mkdirp('./upload', function (err) {
    if (err) {
        console.error(err);
    }    
});

https://www.npmjs.com/package/mkdirp

 

posted @ 2021-02-02 00:24  shanlu  阅读(71)  评论(0编辑  收藏  举报