我正在尝试获取嵌套文件夹中文件的最后修改日期,并且仅复制最近 10 天内修改过的文件。
文件夹结构:
集装箱:家
产品数据/
|---------20221020/
|---------|---------20221020/
|---------|---------|---------product_data_20221020_20221020.parquet
|---------20221021/
|---------|---------20221021/
|---------|---------|---------product_data_20221021_20221021.parquet
|---------20231102/
|---------|---------20231102/
|---------|---------|---------product_data_20231102_20231102.parquet
20231102 parquet 文件是唯一应该复制的文件,因为该文件的最后修改日期是 11 月 7 日(最后修改日期与文件日期不匹配)。
我之前也遇到过类似的问题:使用 Azure 数据工厂获取分区数据的上次修改日期
我当前的问题是我根本无法过滤文件。
图 8: 在 for 循环中获取元数据输出
因为 foo 循环内的“获取元数据”上的“按上次修改进行过滤”似乎不起作用,我还尝试添加过滤器并尝试设置变量(首次亮相),但都失败了。
过滤器配置 项目:
@activity('Get Files Metadata').output.itemName
状况:@greater(activity('Get Files Metadata').output.lastModified, addMinutes(utcNow(), -30))
图 10: 过滤器错误
图12:设置变量错误
要获取嵌套文件夹中文件的最后修改日期,您需要使用获取元数据活动和带有适当参数的 ForLoop。
Filter by last modified
参数获取过去 10 天内修改的文件,其中开始时间为 @getPastTime(10,'Day')
,结束时间为 utcNow()
。
它的数据集:
这将为您提供文件夹中最近 10 天内修改的文件数组。