首页 > 解决方案 > 使用 SSIS Foreach 循环容器时如何在某个日期之后通过文件

问题描述

当前创建了一个 SSIS 包,该包通过文件夹并根据文件名带回最新文件。我已经通过使用 Foreach 循环容器完成了这项工作

在测试中它运行良好,我使用了大约 20 个文件,一切运行良好。但是,当尝试将其放入实时环境中时,它会通过大约 200 多个文件,它会失败,因为旧文件略有改变,这是我第一次创建包时不知道的

我实际上只需要从 2020 年 1 月 3 日起将文件通过,但不能从其位置删除旧文件

有没有办法我可以更改包以仅从该日期起带回文件?如果是这样,我将如何做到这一点?

提前喝彩

标签: ssisssis-2012foreach-loop-container

解决方案


您可以使用文件属性来获取要处理的最新文件:

var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = directory.GetFiles()
             .OrderByDescending(f => f.LastWriteTime)
             .First();

您还可以在其中添加一个位置:

var myFile = directory.GetFiles()
             .Where(f=>f.LastWriteTime>=DateTime.Parse("1/3/2020"))
             .OrderByDescending(f => f.LastWriteTime)
             .First();

推荐阅读