nodejs 操作文件(文件夹)

1.创建文件夹

if (!fs.existsSync(targetDir)) {
    fs.mkdirSync(targetDir);
}

 

2.删除文件夹:

方法1:使用递归
var deleteFolderRecursive = function(path) {
    var files = [];
    if( fs.existsSync(path) ) {
        files = fs.readdirSync(path)
        files.forEach(function(file,index){
            var curPath = path + "/" + file;
            if(fs.statSync(curPath).isDirectory()) { // recurse
                deleteFolderRecursive(curPath);
            } else { // delete file
                fs.unlinkSync(curPath);
            }
        });
        fs.rmdirSync(path);
    }
};

方法2:使用系统的命令
var exec = require('child_process').exec,child;
child = exec('rm -rf test',function(err,out) { 
  console.log(out); err && console.log(err); 
});


3.遍历文件夹,获取文件夹下文件:

 

方法一:
var dirList = fs.readdirSync(temp_dir);
        dirList.forEach(function (fileName) {
            console.log(fileName);        });


 

方法二:
function geFileList(path) {
    var filesList = [];
    readFile(path, filesList);
    return filesList;
}

//遍历读取文件
function readFile(path, filesList) {
    files = fs.readdirSync(path);//需要用到同步读取
    files.forEach(walk);
    function walk(file) {
        states = fs.statSync(path + '/' + file);
        if (states.isDirectory()) {
            readFile(path + '/' + file, filesList);
        }
        else {
            //创建一个对象保存信息
            var obj = new Object();
            obj.size = states.size;//文件大小,以字节为单位
            obj.name = file;//文件名
            obj.path = path + '/' + file; //文件绝对路径
            filesList.push(obj);
        }
    }
}

var getFileName = function(path){
   var pathList = path.split("/");
    var fileName = pathList[pathList.length-1];
    return fileName;
};



var fileList = geFileList("C:/Users/Administrator/Desktop/mydir");


 

 

你可能感兴趣的:(nodejs 操作文件(文件夹))