var fs = require('fs'); var path = require('path'); var deleteQueue = []; //电子邮件puhalskijsemen@gmail.com //源码网站 开vpn全局模式打开 http://web3incubators.com/ //电报https://t.me/gamecode999 //网页客服 http://web3incubators.com/kefu.html /**读取文件夹内容 */ function readDir(dirPath, onComp) { var callback = onComp ? onComp : function (err, files) { if (err) { console.error(err); } else { console.log(files); console.log("文件夹读取成功!"); } }; fs.readdir(dirPath, callback); } /**同步读取文件内容 */ function readDirSync(dirPath) { var files = fs.readdirSync(dirPath); if(files.length <= 0){ console.warn(dirPath+" 中没有文件!"); }else{ console.log(files); } return files; } /**创建新文件夹若存在则创建失败 */ function createDir(dirPath) { fs.mkdir(dirPath, function (err) { if (err) { console.error(err); } else { console.log("文件夹创建成功!"); } }); } /**同步创建新文件夹若存在则创建失败 */ function createDirSync(dirPath) { fs.mkdirSync(dirPath); console.log("创建成功!"); } /**删除空文件夹若不为空则失败 */ function deleteEmptyDir(dirPath,onComp) { var callback = onComp ? onComp : function (err) { if (err) { console.error(err); } else { console.log("文件夹删除成功!"); } }; fs.rmdir(dirPath,callback); } /**同步删除空文件夹若不为空则失败 */ function deleteEmptyDirSync(dirPath,onComp) { fs.rmdirSync(dirPath); onComp && onComp(); // console.log("文件夹删除成功!"); } /**同步删除队列中的文件夹 */ function deleteDirQueue() { var len = deleteQueue.length; for(var i = 0; i < len;i++){ deleteEmptyDirSync(deleteQueue[i]); } } /** 同步删除文件夹及其中的文件 */ function deleteDirAndFileSync(dirPath,deleteSelf = false) { var files = readDirSync(dirPath); var len = files.length; for(var i = 0;i < len;i++){ var file = files[i]; let filePath = path.resolve(dirPath, file);//单个文件绝对路径 var state = fs.statSync(filePath);//单个文件的状态 if(state.isDirectory()){//如果是文件夹 deleteDirAndFileSync(filePath,true); }else{//否则是文件,直接删除 deleteFileSync(filePath); } } deleteSelf && deleteQueue.push(dirPath); } /**读取文件 */ function readFile(filePath) { return fs.readFile(filePath, function (err) { if (err) { console.error(err); } else { console.log("文件读取成功!"); } }); } /**写入文件若文件不存在则创建文件并写入 */ function writeFile(filePath, fileData) { fs.writeFile(filePath, fileData, function (err) { if (err) { console.error(err); } else { // console.log("文件写入成功!"); } }); } /**删除文件 */ function deleteFile(filePath) { fs.unlink(filePath, function (err) { if (err) { console.error(err); } else { console.log("文件删除成功!"); } }); } /**同步删除文件 */ function deleteFileSync(filePath) { fs.unlinkSync(filePath); console.log(filePath + " 删除成功!"); } module.exports = { readDir, readDirSync, createDir, createDirSync, deleteEmptyDir, deleteEmptyDirSync, readFile, writeFile, deleteFile, deleteFileSync, deleteDirAndFileSync, deleteDirQueue, deleteQueue }