node.js建立路徑加文件

使用場景:須要把字符串寫入一個路徑下的某個文件,但不知道這個路徑是否存在,文件是否存在!
// 方法調用
writePathFile("./src/main/webapp/static/dist/js/common/base.min.js","helle world")

// 方法
function writePathFile(path, codes) {
    var pathA = path.split("/");
    pathA.pop();
    createDirsSync(pathA.join("/"), function () {
    // 寫入文件內容的回調函數
        fs.writeFile(path, codes, function (value) {
            codes = "";
        });
    })
}

// 判斷有沒有當前文件夾,有就查詢下一層文件夾,沒有就建立
function createDirsSync(dir, callback) {
    var dirs = dir.split('/');
    if (dirs[0] == '.' || dirs[0] == "..") {
        dirs[1] = dirs[0] + "/" + dirs[1];
        dirs.shift();
    }
    if (dirs[dirs.length - 1] == "") {
        dirs.pop();
    }
    var len = dirs.length;
    var i = 0;
    var url = dirs[i];
    // 啓動遞歸函數
    mkDirs(url);
    // 逐級檢測有沒有當前文件夾,沒有建立,有就繼續檢測下一級
    function mkDirs(url) {
        if (fs.existsSync(url)) {
            i = i + 1;
            if (len > i) {
                url = url + "/" + dirs[i];
                mkDirs(url);
            }else{
                callback();
            }
        } else {
            mkDir(url)
        }
    }
// 建立文件
    function mkDir(url) {
        fs.mkdirSync(url);
        i = i + 1;
        if (len > i) {
            url = url + "/" + dirs[i];
            mkdir(url);
        } else {
            callback();
        }
    }
}
相關文章
相關標籤/搜索