使用场景:须要把字符串写入一个路径下的某个文件,但不知道这个路径是否存在,文件是否存在!
// 方法调用 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(); } } }