🎈 pref: 扩展copyFiles逻辑

This commit is contained in:
zhiyu1998 2024-08-15 10:00:44 +08:00
parent 278cc3c672
commit 87ebabda3c

View File

@ -81,25 +81,41 @@ export async function readCurrentDir(path) {
/** /**
* 拷贝文件 * 拷贝文件
* @param srcDir * @param srcDir 源文件目录
* @param destDir * @param destDir 目标文件目录
* @param specificFiles 过滤文件不填写就拷贝全部
* @returns {Promise<*|null>} * @returns {Promise<*|null>}
*/ */
export async function copyFiles(srcDir, destDir) { export async function copyFiles(srcDir, destDir, specificFiles = []) {
try { try {
await mkdirIfNotExists(destDir); await mkdirIfNotExists(destDir);
const files = await readCurrentDir(srcDir); const files = await readCurrentDir(srcDir);
for (const file of files) { // 如果 specificFiles 数组为空,拷贝全部文件;否则只拷贝指定文件
const filesToCopy = specificFiles.length > 0
? files.filter(file => specificFiles.includes(file))
: files;
logger.info(logger.yellow(`[R插件][拷贝文件] 正在将 ${srcDir} 的文件拷贝到 ${destDir}`));
// 用于保存拷贝了哪些文件
const copiedFiles = [];
for (const file of filesToCopy) {
const srcFile = path.join(srcDir, file); const srcFile = path.join(srcDir, file);
const destFile = path.join(destDir, file); const destFile = path.join(destDir, file);
await fs.promises.copyFile(srcFile, destFile); await fs.promises.copyFile(srcFile, destFile);
copiedFiles.push(file);
} }
logger.info(logger.yellow(`[R插件][拷贝文件] 拷贝完成`));
return copiedFiles
} catch (error) { } catch (error) {
logger.error(error); logger.error(error);
return [];
} }
return null;
} }
/** /**