2017-02-28 72 views
4

我很安静,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”]。值是我的对象变量与包级别范围。

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

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

任何帮助将不胜感激。

回答

2

如果我的理解正确,在拨打GetFiles之前,您应该可以将其设置为新的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 
} 
相关问题