如何使用 SSIS 包中的 Foreach 循环容器选择最近创建的文件夹?

2023-12-05

我在 SSIS 方面遇到了一个有趣的挑战。使用 for-each 文件枚举器,我需要选择最近创建的子文件夹,然后迭代每个文件。

也许举个例子会更好地解释。这些文件夹看起来像这样:

c:\数据\2011-0703

c:\数据\2011-0626

c:\数据\2011-0619

如何获得每个文件枚举器来选择最近的文件夹?这可以通过查看创建日期或比较文件名来实现。

我猜这将通过枚举器中的表达式来完成,只是不知道如何完成!在网上也找不到任何东西。

Thanks


这是一个可能的选择,您可以在以下帮助下实现这一目标Script Task。以下示例展示了如何做到这一点。该示例是在 SSIS 2008 R2 中创建的。

分步过程:

  1. 创建三个文件夹,名称分别为2011-0619, 2011-0626 and 2011-0703在文件夹路径中C:\temp\如截图所示#1。记下Date created每个文件夹的值。

  2. 在每个文件夹中放置一些文件,如屏幕截图所示#2 - #4.

  3. 在 SSIS 包上,创建四个变量,如屏幕截图所示#5。设置变量根文件夹有价值C:\temp\(在您的情况下,这将是 c:\data)。设置变量文件模式有价值*.*。多变的最近使用的文件夹将分配脚本任务中最近的文件夹路径。为了避免设计时错误,请分配变量最近使用的文件夹具有有效的文件路径。多变的FilePath当文件在最近的文件夹中循环时,将被分配值。

  4. 在 SSIS 包上,放置一个脚本任务。将脚本任务中的 Main() 方法替换为下面给出的脚本任务代码脚本任务代码(获取最近的文件夹):。此脚本获取根文件夹中的文件夹列表,并循环检查创建日期时间以选择最近创建的文件夹。然后将最近创建的文件夹路径存储在变量中最近使用的文件夹.

  5. 在 SSIS 包上,放置一个 Foreach 循环容器并按屏幕截图所示进行配置 #6 and #7.

  6. 将脚本任务放置在 Foreach 循环容器内。将脚本任务中的 Main() 方法替换为下面给出的脚本任务代码脚本任务代码(显示文件名):。该脚本仅显示最近创建的文件夹中的文件名称。

  7. 配置完所有任务后,包应如屏幕截图所示#8.

  8. 截图#9 - #11显示包显示最近创建的文件夹中的文件名2011-0703.

希望有帮助。

脚本任务代码(获取最近的文件夹):

C#代码只能在SSIS 2008 及以上版本.

public void Main()
{
    Variables varCollection = null;

    Dts.VariableDispenser.LockForRead("User::RootFolder");
    Dts.VariableDispenser.LockForWrite("User::RecentFolder");
    Dts.VariableDispenser.GetVariables(ref varCollection);

    string rootFolder = varCollection["User::RootFolder"].Value.ToString();
    DateTime previousFolderTime = DateTime.MinValue;
    string recentFolder = string.Empty;

    foreach (string subFolder in System.IO.Directory.GetDirectories(rootFolder))
    {
        DateTime currentFolderTime = System.IO.Directory.GetCreationTime(subFolder);
        if (previousFolderTime == DateTime.MinValue || previousFolderTime <= currentFolderTime)
        {
            previousFolderTime = currentFolderTime;
            recentFolder = subFolder;
        }
    }

    varCollection["User::RecentFolder"].Value = recentFolder;

    Dts.TaskResult = (int)ScriptResults.Success;
}

脚本任务代码(显示文件名):

C#代码只能在SSIS 2008 及以上版本.

public void Main()
{
    Variables varCollection = null;

    Dts.VariableDispenser.LockForRead("User::FilePath");
    Dts.VariableDispenser.GetVariables(ref varCollection);

    MessageBox.Show(varCollection["User::FilePath"].Value.ToString(), "File Path");

    Dts.TaskResult = (int)ScriptResults.Success;
}

屏幕截图#1:

1

屏幕截图#2:

2

屏幕截图#3:

3

屏幕截图#4:

4

屏幕截图#5:

5

屏幕截图#6:

6

屏幕截图#7:

7

屏幕截图#8:

8

屏幕截图#9:

9

屏幕截图#10:

10

屏幕截图#11:

11

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SSIS 包中的 Foreach 循环容器选择最近创建的文件夹? 的相关文章

  • 替换文件中的单词

    我是 Python 编程新手 我有一个 txt 文件 它看起来像 0 工资 14000 0 奖金 5000 0 礼物 6000 我想将每行中的第一个 0 值替换为 1 我怎样才能做到这一点 任何人都可以帮助我 带有示例代码 提前致谢 尼米利
  • 为什么 Laravel 中的 .env 文件配置不起作用

    DB CONNECTION mysql DB HOST 127 0 0 1 DB PORT 3306 DB DATABASE DB USERNAME root DB PASSWORD 这是我的 laravel 5 4 配置 但 php ar
  • 如何将图片保存到文件中?

    我正在尝试使用标准意图来拍照 然后允许批准或重新拍摄 然后我想将图片保存到文件中 这是我正在使用的意图 Intent intent new Intent android provider MediaStore ACTION IMAGE CA
  • 在 UNIX 中删除相同的文件

    我正在处理大量 30 000 个 大小约为 10MB 的文件 其中一些 我估计 2 实际上是重复的 我只需要为每个重复的对 或三元组 保留一个副本 您能建议我一种有效的方法吗 我正在unix上工作 您可以尝试使用此代码片段在删除之前先获取所
  • python 打开相对文件夹中所有以.txt结尾的文件

    我需要打开并解析文件夹中的所有文件 但我必须使用相对路径 类似于 input files 我知道在 JavaScript 中你可以使用 path 库来解决这个问题 我怎样才能在Python中做到这一点 这样您就可以获得路径中的文件列表作为列
  • 在JAVA中将数据写入.txt文件?

    我想知道是否是在JAVA中将计算的数据写入文本文件 我的 JAVA 代码是一个基于 GUI 的 gpa 计算器 我只想添加一个 JButton 和 ActionListener 它将类名 GPA 点和计算出的 GPA 写入 txt 文件 这
  • 如何为 GlassFish Web 应用程序提供对外部资源(文件)的访问?

    我是一个有点玻璃鱼 http en wikipedia org wiki GlassFish初学者 所以请原谅我对这个问题的无知 基本上 我们正在为一个游戏网站提供服务 为了使我们的网络应用程序可以下载客户端 我们将其复制到domain1中
  • 是否可以创建一个包含多页 tiff 文件所有帧的 base64 字符串?

    使用已知的转换方法将多页 tiff 文件转换为 base64 字符串似乎只包含其中的一个页面 我从本地磁盘获取多页 tiff 文件 Image multiPageImage Image FromFile fileName 将其转换为 bas
  • 为什么.net中的数组只实现IEnumerable而不实现IEnumerable

    我正在实现自己的 ArrayList 类 当我意识到这一点时 我感到很惊讶 public System Collections Generic IEnumerator
  • 我如何知道文件已打开或正在使用? [复制]

    这个问题在这里已经有答案了 可能的重复 有没有办法检查文件是否正在使用 https stackoverflow com questions 876473 is there a way to check if a file is in use
  • python 中的文件输出给我垃圾

    当我编写以下代码时 我得到的输出是垃圾 这只是一个寻找素数的简单程序 当第一个 for 循环范围仅达到 1000 时 它会起作用 但一旦范围变大 程序将无法输出有意义的数据 output open output dat w for i in
  • 如何使用 python(版本 2.5)压缩文件夹的内容?

    一旦我在特定文件夹中拥有了所需的所有文件 我希望我的 python 脚本能够压缩文件夹内容 这可能吗 我该如何去做呢 在 python 2 7 上你可以使用 Shutil make archive base name 格式 root dir
  • xhr 响应 for 循环不起作用

    我有 xhr 和 for 循环 它的工作非常罕见 for var i 0 i lt this files length i var xhr new XMLHttpRequest xhr upload onprogress function
  • SSIS 包失败并出现“无法获取连接”错误

    我们有一个从 Web 服务启动的 SSIS 包 在开发环境中 一切正常 但在 QA 环境中 尝试运行包时出现以下错误 无法获取连接 ConnectionName 连接可能未正确配置 或者您可能没有正确的权限这个连接 连接使用 SQL 登录
  • Java - 为什么从文件读取时跳过零

    为什么我的程序在读取文件时忽略零 例如 以下是文件中的数字 0001 0011 0010 然后这是我的输出 1 11 10 这是我的代码 File file new File num txt Scanner scanner new Scan
  • 服务器端文件验证在 Yii.2.0 中不起作用

    Is the FileValidatorYii2 中的类只支持客户端验证 我使用代码编写了文件上传系统 在模型中 public function rules return allAllowedFileType safe allAllowed
  • 将文件写入 Web 服务器 - ASP.NET

    我只想将 TextBox 控件的内容写入 Web 服务器目录根目录中的文件 如何指定它 请记住 我正在本地测试这个 它不断地将文件写入我的程序文件 Visual Studio Common IDE目录而不是我的项目目录 这是我假设Web服务
  • 读取 .pdb 文件

    我有很多 pdb 格式的文件 其中一些已下载 但到目前为止我无法使用或读取其中的内容 因此我正在寻找如何从 MS Windows XP 读取和查看 pdb 文件格式 有谁知道怎么打开吗 如果您将 PDB 视为调试器使用的 程序数据库 PDB
  • 使用 FromBase64Transform 解码 base64 文件流

    The example https msdn microsoft com en us library system security cryptography frombase64transform 28v vs 110 29 aspx从M
  • 过滤路径列表以仅包含文件

    如果我有一个清单FilePaths 如何过滤它们以仅返回常规文件 即不是符号链接或目录 例如 使用getDirectoryContents main do contents lt getDirectoryContents foo bar l

随机推荐

  • SQL 按最近日期选择具有两个唯一列的行

    使用以下查询和结果 我正在查找 ChargeId 和 ChargeType 唯一的最新条目 select chargeId chargeType serviceMonth from invoice CHARGEID CHARGETYPE S
  • Hindley-Milner 的哪一部分是你不明白的?

    I swear曾经有一个T shirt出售带有不朽文字的 哪一部分 do you not理解 就我而言 答案是 全部 特别是 我经常在 Haskell 论文中看到这样的符号 但我不知道它的含义 我不知道它应该是数学的哪个分支 我当然认识希腊
  • 在Interceptor.intercept()内部,我如何知道Action是否已经被执行?

    我正在使用拦截器在基于 Struts 的应用程序中实现一些内容 但我对它们的生命周期如何工作感到困惑 根据 Struts 文档 拦截者 编写拦截器 and 大图景 它应该像这样工作 FirstInterceptor NextIntercep
  • Boost::解析字符串时的精神斗争

    我正在尝试用 Boost Spirit 解析字符串 但我无法让它工作 从今天起我就没有使用 Boost Spirit 的经验了 该字符串由用 分隔的命令组成 命令是 INC 一些整数 BOMB 第一个整数 第二个整数 MOVE 第一个整数
  • Typescript:重写超类方法而不需要知道超类方法签名

    以下是我如何可靠地重写 vanilla JS 中的方法 而不关心名称或参数数量或返回值 import EventEmitter from events console log event arguments every time this
  • 结合使用 Bootstrap for Angular 和 Material design for Angular

    我正在做一个与此相关的项目template 该模板是使用 AngularJs 和 Bootstrap UI 角度引导 编写的 我想包含一些材料设计元素 例如卡片等 可以这样做吗 推荐吗 我的事情是 我们已经喜欢这个模板及其许多元素的方式 但
  • 单引号和双引号一起作为 HTML 属性值?

    我们有这样的代码 echo
  • 输出 JSON 对象中的所有直接邻居

    是否可以在 Cypher 中编写查询以将以下查询的输出格式化为 JSON 对象 MATCH n Artist name Metallica r gt m Album RETURN node n neighbours type r colle
  • 检索 ListView asp.net 中选定单选按钮的值

    我想发送一个 Guid 当用户单击结账时 该 Guid 应作为 eventargs 与每个单选按钮关联 我只用 RadioButtonList 就可以实现此功能 但我不能在这里使用它 因为其余字段是从数据库中提取的 有很多涉及此类主题的问题
  • JavaScript - 在内部函数中引用“this”

    考虑以下代码 MyClass prototype my func function this x 10 ajax success function data alert this x 它不起作用 因为显然this没有绑定到闭包的执行上下文中
  • ORDER BY RAND() 似乎不是随机的

    我有一个相当简单的 SQL MySQL SELECT foo FROM bar ORDER BY rank RAND 我注意到 当我刷新结果时 随机性很弱 目前的样本数据中有六个具有相同排名的结果 整数零 有很多随机性测试 但这里有一个简单
  • 无法从节点模块自动导入反应组件

    我最近开始使用 VS Code 我正在使用带有 React 和 Type 脚本的 Material ui 但我无法使用 alt option Enter 快捷方式导入 Material ui 的组件 我使用的是mac 我使用的typescr
  • Plotly:在箱线图中用样本名称注释异常值

    我正在尝试使用 ggplot 创建箱线图并使用数据集绘制箱线图airquality where Month在 x 轴上并且Ozone值位于 y 轴上 我的目标是注释该图 以便当我将鼠标悬停在离群点上时 它应该显示Sample除臭氧值外的名称
  • 从 Google OpenID 迁移到新的 OAuth 2

    我发现已经有一些关于此的问题 但我发现没有一个涉及任何细节 我之前使用过来自 DotNetOpenAuth 的自己的代码 但现在我决定切换到 Microsoft Wrapper 进行身份验证 无论如何 我发现这个非常好的 OAuth 客户端
  • 如何在 React Router v6 中重定向?

    我正在尝试升级到 React Router v6 react router dom 6 0 1 这是我更新的代码 import BrowserRouter Navigate Route Routes from react router do
  • 如何处理 callableStatement.registerOutParameter(1, java.sql.Types.BOOLEAN);

    Oracle 10g 11g 中有一个存储过程 如下所示 CREATE OR REPLACE PROCEDURE SP SOME PROC PRM ID IN NUMBER START DATE IN DATE RESULT OUT BOO
  • 将输入字段移动到跨度顶部

    我有一个跨度作为我的输入字段的标签 选中后 标签将位于输入字段上方 我的问题是 当您尝试单击输入字段时 标签位于输入字段的 前面 并阻止您选择它 我尝试使用 z 索引修复它 但这似乎不起作用 有人可以帮我将输入字段放在跨度前面吗 input
  • ASP CustomValidator,错误后前进到回发

    我有一个 ASP NET 页面 其中包含 ASP 验证器 必填字段 正则表达式等 以及用于附加验证的 Java 脚本函数 例如 检查第二个日期是否大于第一个日期等 我通常这样做
  • 下载mp3文件并存储在应用程序目录中

    在我的 Android 项目中 我需要以编程方式从 google 驱动器下载网址下载 mp3 文件并将其存储在应用程序沙箱中 然后 应用程序可以有播放选项在本地播放该音频 如何实现从服务器下载 mp3 文件并将其本地存储在应用程序中 稍后
  • 如何使用 SSIS 包中的 Foreach 循环容器选择最近创建的文件夹?

    我在 SSIS 方面遇到了一个有趣的挑战 使用 for each 文件枚举器 我需要选择最近创建的子文件夹 然后迭代每个文件 也许举个例子会更好地解释 这些文件夹看起来像这样 c 数据 2011 0703 c 数据 2011 0626 c