代码:

/** @param extend 要带有'.'*/
    async function getFileInDir(dirPath: string, extend?: string, isDeep: boolean = true): Promise<string[]> {
        let filePath: string[] = [];
        for (const item of await readdir(dirPath, { withFileTypes: true })) {
            if (item.isFile()) {
                if (extend && path.extname(item.name).toLowerCase() !== extend.toLowerCase()) continue;
                filePath.push(path.join(dirPath, item.name));
            }
            else if (isDeep) {
                filePath.push(...await this.getFileInDir(path.join(dirPath, item.name), extend));
            }
        }
        return filePath;
    }