使用場景:須要把字符串寫入一個路徑下的某個文件,但不知道這個路徑是否存在,文件是否存在!
// 方法調用 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(); } } }