🎈 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 destDir
* @param srcDir 源文件目录
* @param destDir 目标文件目录
* @param specificFiles 过滤文件不填写就拷贝全部
* @returns {Promise<*|null>}
*/
export async function copyFiles(srcDir, destDir) {
export async function copyFiles(srcDir, destDir, specificFiles = []) {
try {
await mkdirIfNotExists(destDir);
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 destFile = path.join(destDir, file);
await fs.promises.copyFile(srcFile, destFile);
copiedFiles.push(file);
}
logger.info(logger.yellow(`[R插件][拷贝文件] 拷贝完成`));
return copiedFiles
} catch (error) {
logger.error(error);
return [];
}
return null;
}
/**