Node 文件遍历方法

20 min read
/**
 * 文件遍历方法
 * @param filePath 需要遍历的文件路径
 */
export const getAllFilesMDType= async (filePath:string):Promise<string[]> => {
  const  mds = []
  const files = await fsPromises.readdir(filePath);
  for (const file of files) {
    let fileOrDir = path.join(filePath,file);
    console.log('fileOrDir',fileOrDir)
    const stats = await fsPromises.stat(fileOrDir);
    let isFile = stats.isFile();//是文件
    let isDir = stats.isDirectory();//是文件夹
    if(isFile && fileOrDir.endsWith('.md')){
      mds.push(fileOrDir)
    }
    if(isDir){
      const files = await getAllFilesMDType(fileOrDir)
      mds.push(...files);//递归,如果是文件夹,就继续遍历该文件夹下面的文件
    }
  }

  return mds
}