简介

Fs模块是nodejs中操作文件目录的一个模块。

Api

fs.stat【检测时文件还是目录】

参数列表类型说明
参数一string需要检测的文件路径或目录
参数二functioncallback方法传入2个参数 1.错误信息 2.信息
fs.stat("./test",(err,info)=>{
    if(err){
        console.log("error:"+err);
        return false;
    }
    console.log("文件:"+info.isFile());
    console.log("目录:"+info.isDirectory());
});

fs.mkdir【创建目录】

目录不存在则创建文件,目录存在则报错

参数列表类型说明
pathstring创建目录的名称
modeint目录权限(读写权限),默认0777
callbackfunction回调,传递异常参数err
fs.mkdir("css",(err)=>{
    if(err){
        console.log(err);
        return false;
    }
    console.log("创建目录成功!");
});

fs.writeFile【创建写入文件】

如果文件不存在则创建文件,如果存在则覆盖文件

参数列表类型说明
filenamestring文件名
datastring/buffer将要写入的内容,可以是字符串或buffer数据
opetionsobjectopetion数组对象
callbackfunction回调,传递一个异常参数err

options参数:

参数列表类型说明
encodingstring可选值,默认utf8,当data使用bufffer是,该值应该为ignored。
modenumber文件读写权限,默认438
flagstring默认值w
fs.writeFile('t.txt','你好nodejs222','utf-8',err=>{
    if(err){
        console.log(err);
        return false;
    }
    console.log("写入成功!");
});

fs.appendFile【追加文件】

如果不存在文件则创建,如果存在则追加
参数和是使用方法同fs.writeFile一致

fs.readFile【读取文件】

参数列表类型说明
filePathstring文件路径
callbackfunction回调函数1.err 2.文件数据
fs.readFile('t.txt',(err,data)=>{
    if(err){
        console.log(err);
        return false;
    }
    console.log(data.toString());
});

fs.readdir【读取目录】

把目录下的文件和文件夹都获取到,data是一个文件名数组

参数列表类型说明
dirPathstring文件路径
callbackfunction回调函数1.err 2.data

fs.rename【重命名和剪切】

参数列表类型说明
参数一string原文件路径
参数二string新文件路径
callbackfunction回调函数1.err

fs.rmdir【删除目录】

只能删除目录,不能删除文件

fs.unlink【删除文件】

案例

1.判断是有没有upload目录,没有创建这个目录。(图片上传)

var fs=require('fs');
fs.stat('upload',(err,info)=>{
    if(err){
        console.log("目录不存在!");
        fs.mkdir('upload',err=>{
            if(err){
                console.log(err);
                return false;
            }
            console.log("创建目录成功!");
        });
        return false;
    }
    console.log("此目录存在");
});

2.找出html目录下的所有目录,然后打印出来

var fs=require('fs');
var list=[];
fs.readdir('html',(err,files)=>{
    if(err){
        console.log(err);
        return false;
    }
    //判断是否为目录
   /* files.forEach(e=>{
        fs.stat(e,(err,stats)=>{
            if(!err && stats.isDirectory()){
                list.push(e);
            }
        })
    });*/
    (function getFile(i){
        if(i>=files.length){
            console.log('循环结束');
            console.log(list);
            return false;
        }
        fs.stat("html/"+files[i],(err,stats)=>{
            //是否为目录
            if(!err && stats.isDirectory()){
                list.push(files[i]);
            }
            //递归调用
            getFile(++i);
        });

    })(0);
});

标签: nodejs笔记

添加新评论