From 653d3c622834dd9747755ae52bf050cd4dbc073e Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Tue, 2 Dec 2025 13:31:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=96=E6=8B=BD=E4=B8=8A=E4=BC=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E6=9C=AA=E8=AF=BB=E5=8F=96=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/index.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/utils/index.js b/src/utils/index.js index 3007efcb..605ec1a0 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -197,16 +197,32 @@ export function workSpeedclose(isForce = false) { imageId = null; percentageById = {}; } +function readDirectoryEntries(directoryReader) { + return new Promise((resolve, reject) => { + let entries = []; + function readBatch() { + directoryReader.readEntries( + (results) => { + if (results.length) { + entries = entries.concat(results); + readBatch(); + } else { + resolve(entries); + } + }, + (error) => reject(error) + ); + } + readBatch(); + }); +} export async function readEntry(entry) { const files = []; // 如果是文件夹,创建读取器并递归读取其内容 if (entry.isDirectory) { const directoryReader = entry.createReader(); - const entries = await new Promise((resolve, reject) => { - directoryReader.readEntries(resolve, reject); // readEntries是异步的 - }); - + const entries = await readDirectoryEntries(directoryReader) // 递归读取文件夹内的每一项 for (const subEntry of entries) { const subFiles = await readEntry(subEntry);