使用SSIS Foreach循环循环多个文件夹
Use SSIS Foreach loop to loop multiple folders
我有一个主要文件夹,其中包含 40 多个文件夹。我创建了一个 SSIS 包,它在 40 个文件夹中的 22 个中创建了子文件夹。我想在我的包中使用 Foreach 循环来循环遍历我的脚本的 22 个文件夹,以 return 名称和 date/timestamp 创建的新子文件夹。
我目前可以遍历所有 40 个文件夹,但我无法找到有关如何定位特定文件夹的信息。
如有任何参考建议,我们将不胜感激。
您可以使用脚本任务生成特定文件夹的列表,或者您可以使用带有表达式任务的 for each 循环来实现此目的,只需按照我的回答:
- Exclude specific Sub Folders
脚本示例:
Public Sub Main()
Dim lstFiles As New Generic.List(Of String)
'Assuming that C:\Temp is the main folder
'And We want to include all subdirectories that contains "Report" word
For Each strDirectory As String In IO.Directory.GetDirectories("C:\Temp", "*.*", IO.SearchOption.TopDirectoryOnly)
If Not strDirectory.Contains("Report") Then Continue For
lstFiles.AddRange(IO.Directory.GetFiles(strDirectory, "*.*", IO.SearchOption.TopDirectoryOnly)
Next
Dts.Variables.Item("FilesList").Value = lstFiles
Dts.TaskResult = ScriptResults.Success
End Sub
我有一个主要文件夹,其中包含 40 多个文件夹。我创建了一个 SSIS 包,它在 40 个文件夹中的 22 个中创建了子文件夹。我想在我的包中使用 Foreach 循环来循环遍历我的脚本的 22 个文件夹,以 return 名称和 date/timestamp 创建的新子文件夹。
我目前可以遍历所有 40 个文件夹,但我无法找到有关如何定位特定文件夹的信息。
如有任何参考建议,我们将不胜感激。
您可以使用脚本任务生成特定文件夹的列表,或者您可以使用带有表达式任务的 for each 循环来实现此目的,只需按照我的回答:
- Exclude specific Sub Folders
脚本示例:
Public Sub Main()
Dim lstFiles As New Generic.List(Of String)
'Assuming that C:\Temp is the main folder
'And We want to include all subdirectories that contains "Report" word
For Each strDirectory As String In IO.Directory.GetDirectories("C:\Temp", "*.*", IO.SearchOption.TopDirectoryOnly)
If Not strDirectory.Contains("Report") Then Continue For
lstFiles.AddRange(IO.Directory.GetFiles(strDirectory, "*.*", IO.SearchOption.TopDirectoryOnly)
Next
Dts.Variables.Item("FilesList").Value = lstFiles
Dts.TaskResult = ScriptResults.Success
End Sub