SSIS For Loop Stopped working

前端 未结 1 1692
独厮守ぢ
独厮守ぢ 2021-01-25 03:14

I have a for loop container within my ssis package which contains a script and a sql task.

I have 3 variables.

source.string = this is folder l         


        
相关标签:
1条回答
  • 2021-01-25 03:38

    Based on comments above i made 2 different solutions. The solution for you right now would be no. 2

    1. This one can search for a specific file based on multiple files in your path. It need some tweaking but can be used if you wanna check if a specific file exists with wildcard

    2. This one evaluates to true if any wildcard file is found.

    C# Code 1

    Using System.IO:
    
    string Filepath = Dts.Variables["User::Source"].Value.ToString();
                string WildCard = Dts.Variables["User::file"].Value.ToString(); // In Text form @"*.txt";
                string fullpath = Filepath + WildCard;
    
                //With for loop
                string txtFile = null;
                // Gets all files with wildcard
                string[] allfiles = Directory.GetFiles(Filepath, WildCard);
                
                //Loop through all files and set the filename in txtFile. Do whatever you want here
                foreach(string fileName in allfiles)
                {
                    //Check if a file contains something, it could be a prefixed name you only want
                    if(fileName.Contains("txt"))
                    {
                        txtFile = fileName;
                        if(File.Exists(txtFile))
                        {
                            Dts.Variables["User::Exists"].Value = 1;
                        }
                    }
                }
    

    C# Code 2

     Using System.IO;
     Using System.Linq;
    
     string Filepath = Dts.Variables["User::Source"].Value.ToString();
                string WildCard = Dts.Variables["User::file"].Value.ToString(); //In text form "*.txt";
                string fullpath = Filepath + WildCard;
    
                //With bool
                bool exists = Directory.EnumerateFiles(Filepath, WildCard).Any();
    
                if(exists == true)
                {
                    Dts.Variables["User::Exists"].Value = 1;
                }
    
                  
                MessageBox.Show (Filepath);
                MessageBox.Show(Dts.Variables["Exists"].Value.ToString());
    
    0 讨论(0)
提交回复
热议问题