如何从 SSIS 中的脚本任务重置对象变量?

How to reset object variable from script task in SSIS?

我对 SSIS 包编写有点陌生,我在我的 SSIS 包中有嵌套循环,一个是将所有文件夹循环到一个位置,内部循环是循环遍历每个文件夹中的所有文件。

在文件夹级别循环中,我的第一个任务是脚本任务,在该任务中,我将所有文件路径提取到一个对象变量中,包级别范围作为字符串数组,如下所示。

string targetDirectory = Convert.ToString(Dts.Variables["SourceFolderLocation"].Value);
string[] fileEntries = Directory.GetFiles(targetDirectory, "*.pdf");
Dts.Variables["FileList"].Value = fileEntries;

Dts.Variables["FileList"].Value 是我的包级别范围的对象变量。

现在我的要求是在文件夹级循环的脚本任务中,首先重置该对象变量,然后将新文件列表设置到该对象变量中,就好像我在访问文件夹时遇到任何异常一样,它不应该处理以前文件夹的文件。

我的问题是如何在脚本任务 C# 代码中重置对象变量?所以它不会再次处理以前文件夹的文件,而且我也没有得到枚举器不应该包含空值错误。

任何帮助将不胜感激。

如果我理解正确,你应该能够在调用 GetFiles 到 'reset' 之前将它设置为新的 string[]

string[] fileEntries = new string[] {};
try {
    string targetDirectory = Convert.ToString(Dts.Variables["SourceFolderLocation"].Value);
    fileEntries = Directory.GetFiles(targetDirectory, "*.pdf");
    Dts.Variables["FileList"].Value = fileEntries;
}
catch (Exeception e) { 
    // handle exception
}