前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用PQ获取目录下所有文件夹的名(不含文件和子目录)

如何使用PQ获取目录下所有文件夹的名(不含文件和子目录)

作者头像
陈学谦
发布2020-05-08 15:21:37
6.7K0
发布2020-05-08 15:21:37
举报
文章被收录于专栏:学谦数据运营学谦数据运营

今天想把之前发布的Power BI的示例文件文件夹做一个表出来,只获取该目录下的所有文件夹的名,并不包含其中各种文件和子目录。

因为每个文件夹中都包含多个文件,甚至还有子文件夹:

所以如果直接用“从文件夹获取数据”的方式,PowerQuery会使用Folder.Files函数:

Folder.Files会将所选目录下所有文件的路径罗列出来:

当然,其实可以通过一系列pq操作将文件夹的名都筛选出来,实现我的目的。

不过,这样其实有个小问题,如果有一些文件夹我还没有在里面保存文件,也就是空文件夹,那么它就不会出现在列表中:

而且,其实用字符串多步骤切割的方法,一是很繁琐, 二是容易后续出问题。

我觉得应该会有个稍微简单点的操作。

查了一下PowerQuery的document发现,针对Folder的操作,除了Folder.Files,还有一个Folder.Contents:

以下是Folder.Contents的说明:

这个就比较好了。它只返回所选的目录下的文件夹名和文件名,并不会返回子文件夹下的文件。

所以,我们将Folder.Files替换成Folder.Contents:

这样我们就得到了根目录下的所有文件夹名,和文件名。尤其是,空文件夹这里也出现了。

接下来就是从列表中只返回文件夹的名。

有同学会说,文件夹没有拓展名,而文件都是有拓展名的,所以只要筛选extension这里为空就可以:

不过,这种说法显然漏掉了一种情况:

如果根目录下还有一个无拓展名的文件,那么,仅仅筛选extension为空的话,就会多余一行数据:

所以需要其他办法,展开attribute选择directory:

点击确定后:

再筛选TRUE的行:

意思是查看属性,然后筛选那些是“目录”的行。

这样,就将该目录下的所有文件夹的名获取到了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档