ssis - 使用 SSIS Foreach 循环容器时如何在某个日期之后通过文件
问题描述
当前创建了一个 SSIS 包,该包通过文件夹并根据文件名带回最新文件。我已经通过使用 Foreach 循环容器完成了这项工作
在测试中它运行良好,我使用了大约 20 个文件,一切运行良好。但是,当尝试将其放入实时环境中时,它会通过大约 200 多个文件,它会失败,因为旧文件略有改变,这是我第一次创建包时不知道的
我实际上只需要从 2020 年 1 月 3 日起将文件通过,但不能从其位置删除旧文件
有没有办法我可以更改包以仅从该日期起带回文件?如果是这样,我将如何做到这一点?
提前喝彩
解决方案
您可以使用文件属性来获取要处理的最新文件:
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();
推荐阅读
- flutter - 可以缩放图表并显示相应的数据吗?
- java - 如何用 axon 解决 spring-boot-devtools 的问题?
- php - 创建第 n 级形式数组列表的数组树
- reactjs - setState 覆盖现有状态
- python - 匹配两列中的数据并将匹配添加到数据框
- php - MacOS Mojave + PHP 7.1.23 + IMAP 配置
- java - EntityManager 在 find 挂起应用程序后仍然存在
- c# - 使用 c# 在 UWP 中发送 Toast 消息的问题
- java - Lotus Notes Java 代理的 GSON 库错误 - java.lang.NoClassDefFoundError: com.google.gson.JsonObject
- sql - 在 SQL 中启动和监控代理作业的简单 SQL 查询