You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在storage.getFiles()响应中区分文件夹与文件?

区分Cloud Storage中的文件夹与文件

Cloud Storage本质是对象存储,所谓的“文件夹”其实是前缀以斜杠结尾的空对象,真正的文件不会以斜杠结尾。你可以通过两种方式区分:

方式一:直接判断对象名称后缀

遍历images[0]里的每个对象,通过name属性的结尾字符判断:

const [files] = await storage.bucket().getFiles({ prefix: 'images' });

for (const file of files) {
  const isFolder = file.name.endsWith('/');
  if (isFolder) {
    console.log(`文件夹:${file.name}`);
  } else {
    console.log(`文件:${file.name}`);
  }
}

方式二:用参数优化查询结果

如果只想获取images下的直接文件和子文件夹,添加delimiter: '/'参数,返回结果会自动把两者分开:

const [files, folderInfo] = await storage.bucket().getFiles({ 
  prefix: 'images/',
  delimiter: '/'
});

console.log("直接文件列表:", files);
console.log("子文件夹前缀:", folderInfo.prefixes); // prefixes数组里是所有子文件夹的路径,比如images/subfolder/

这种方式更高效,不用自己遍历判断,Cloud Storage直接帮你拆分了结果。

内容的提问来源于stack exchange,提问作者cbdeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:45:32