55 lines
1.1 KiB
JavaScript
55 lines
1.1 KiB
JavaScript
const fs= require("fs")
|
||
const path = require("path")
|
||
/**
|
||
* 读取路径信息
|
||
* @param {string} path 路径
|
||
*/
|
||
function getStat(dir) {
|
||
try {
|
||
const stat = fs.statSync(dir);
|
||
return stat;
|
||
} catch (error) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 创建路径
|
||
* @param {string} dir 路径
|
||
*/
|
||
function mkdir(dir) {
|
||
return fs.mkdirSync(dir)
|
||
}
|
||
|
||
/**
|
||
* 路径是否存在,不存在则创建
|
||
* @param {string} dir 路径
|
||
*/
|
||
function mkdirRecursions(dir) {
|
||
let isExists = getStat(dir);
|
||
console.log(isExists,dir)
|
||
//如果该路径且不是文件,返回true
|
||
if (isExists && isExists.isDirectory()) {
|
||
return true;
|
||
}
|
||
else if(isExists){
|
||
return false;
|
||
}
|
||
//如果该路径不存在,拿到上级路径
|
||
let tempDir = path.parse(dir).dir;
|
||
//递归判断,如果上级目录也不存在,则会代码会在此处继续循环执行,直到目录存在
|
||
let status = mkdirRecursions(tempDir);
|
||
let mkdirStatus;
|
||
if (status) {
|
||
console.log("mark",dir)
|
||
|
||
mkdir(dir);
|
||
mkdirStatus = true
|
||
}
|
||
return mkdirStatus;
|
||
}
|
||
|
||
|
||
module.exports = {
|
||
mkdirRecursions
|
||
} |