Search code examples
sqlsql-serverssisbids

How to add multiple file extensions to the Files: input field in the Foreach loop container SSIS


How could I add multiple file extensions to the Files: input field in the Foreach loop container in SSIS 2008.

I have currently entered as *.zip OR .csv see image... but it doesn not work only works if I have one value like *.zip

ForEachLoop in SSIS


Solution

  • I don't think you can specify two file type extensions in a For each Loop container , you should use *.* and you can filter for a specific extensions by using the following steps:

    1. add a Variable of type boolean (ex: User::Flag)
    2. add a script task inside the container and mark Filename variable as Readonly , Flag variable as ReadWrite

    enter image description here

    1. Inside the script write the following script

      Public Sub Main()
      
          Dim strFile As String = Dts.Variables.Item("Filename").Value.ToString
      
          Select Case IO.Path.GetExtension(strFile).ToLower
              Case ".csv", ".zip"
                  Dts.Variables.Item("Flag").Value = True
      
      
              Case Else
                  Dts.Variables.Item("Flag").Value = False
          End Select
      
      
          Dts.TaskResult = ScriptResults.Success
      End Sub
      
    2. Add an expression to the Script task output connector like shown below

    enter image description here

    Or you can achieve it by using a Third-party components like Foreach File Enumerator with regex