yhd-cli
Version:
create a vue or react project fastly
97 lines • 1.9 kB
JavaScript
;
let fs = require('fs');
/**
* 写文件操作
* @param pathname
* @param data
* @param options
* @returns {Promise}
*/
exports.writeFile = (pathname,data,options)=> {
return new Promise((resolve,reject)=> {
fs.writeFile(pathname,data,options,(err)=> {
if(err){
reject(err);
}else{
resolve();
}
});
});
};
/**
* 读取文件内容
* @param pathname
* @returns {Promise}
*/
exports.readFile = (pathname)=> {
return new Promise((resolve,reject)=> {
fs.readFile(pathname,(err,data)=>{
if(err){
reject(err);
}else{
resolve(data);
}
});
});
};
/**
* 删除空文件夹
* @param pathname
* @returns {Promise}
*/
exports.rmdir = (pathname)=> {
return new Promise((resolve,reject)=> {
fs.rmdir(pathname,(err)=>{
if(err){
reject(err);
throw new Error(err);
}else{
resolve();
console.log('rm dir successed');
}
});
});
};
/**
* 读取文件夹里面的内容
* @param pathname
* @returns {Promise}
*/
exports.readdir = (pathname)=> {
return new Promise((resolve,reject)=> {
fs.readdir(pathname,(err,files)=>{
if(err){
reject(err);
throw new Error(err);
}else{
resolve(files);
}
});
});
};
/**
* 递归删除文件夹
* @param path
*/
const deleteFolderRecursive = function(path) {
var files = [];
if( fs.existsSync(path) ) {
files = fs.readdirSync(path);
files.forEach(function(file,index){
var curPath = path + "/" + file;
if(fs.statSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
};
/**
* 删除非空文件夹
* @param pathname
*/
exports.rmfolder = (pathname)=> {
deleteFolderRecursive(pathname);
};