使用场景:需要把字符串写入一个路径下的某个文件,但不知道这个路径是否存在,文件是否存在!
// 方法调用
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();
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。