var fs = require('fs'); var path = require('path'); // 获取n级上层路径,要获取当前路径传0 function parent_path_count(path_str, count) { // 获取多级 var path_temp = path_str for (var i = 0; i < count; i++) { path_temp = path.resolve(path_temp, '..') } return path_temp } var copy = function (src, dst) { let paths = fs.readdirSync(src); //同步读取当前目录 paths.forEach(function (path) { var _src = src + '/' + path; var _dst = dst + '/' + path; fs.stat(_src, function (err, stats) { //stats 该对象 包含文件属性 if (err) throw err; if (stats.isFile()) { //如果是个文件则拷贝 let readable = fs.createReadStream(_src);//创建读取流 let writable = fs.createWriteStream(_dst);//创建写入流 readable.pipe(writable); } else if (stats.isDirectory()) { //是目录则 递归 // checkDirectory(_src, _dst, copy); } }); }); } var checkDirectory = function (src, dst, callback) { fs.access(dst, fs.constants.F_OK, (err) => { if (err) { fs.mkdirSync(dst); callback(src, dst); } else { callback(src, dst); } }); }; // 项目路径 let projectPath = parent_path_count(path.dirname(__filename), 2) const SOURCES_DIRECTORY = `${projectPath}/warfare_backend/common/cfg/`; //源目录 const TARGET_DIRECTORY = `${projectPath}/warfare_client/assets/script/common/cfg/`; //目标目录 // //战斗逻辑路径 // const SOURCES_BATTLE_DIRECTORY = `${projectPath}/manv_backend/cfg/battle/`; //源目录 // const TARGET_BATTLE_DIRECTORY = `${projectPath}/manv_client/assets/script/cfg/battle/`; //目标目录 fs.exists(TARGET_DIRECTORY, function (exists) { if (exists) { fs.exists(SOURCES_DIRECTORY, function (exists2) { if (exists2) { checkDirectory(SOURCES_DIRECTORY, TARGET_DIRECTORY, copy); // checkDirectory(SOURCES_BATTLE_DIRECTORY, TARGET_BATTLE_DIRECTORY, copy); } }); } });