52 lines
1.0 KiB
JavaScript
52 lines
1.0 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)
|
|||
|
//如果该路径且不是文件,返回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) {
|
|||
|
mkdirStatus = mkdir(dir);
|
|||
|
}
|
|||
|
return mkdirStatus;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
module.exports = {
|
|||
|
mkdirRecursions
|
|||
|
}
|