Tarea de secuencia de comandos de SSIS Obtenga nombres de archivos y almacene en una variable de objeto de SSIS

Estoy intentando crear un paquete SSIS que se utilizará en un proceso de archivo estandarizado del sistema de archivos. Básicamente, podré agregar información a una tabla de configuración y luego usar esta tabla para archivar ciertos archivos en carpetas específicas. Mi problema es que muchos de los archivos tienen nombres dinámicos, así que necesito obtener una lista de todos los archivos y luego consultar para decidir qué archivos debo tocar.

No ser un programador de C # / VB me está causando algunos problemas al intentar realizar una secuencia de comandos de una parte del paquete para capturar todos los archivos en un directorio de red específico y luego volver a introducir estos nombres de archivo en una variable de objeto SSIS.

Tengo una variable de cadena 'User :: SourceNetworkFolderName' que contendrá la ubicación UNC de la carpeta desde la que quiero leer todos los archivos. Luego quiero volver a pasar todos estos nombres de archivos (con extensión) a una variable de objeto SSIS llamada 'User :: SourceFilesInTheDirectory'. Una vez que tengo la lista de nombres de archivos en la variable de objeto, iba a forearlos en una tabla SQL.

¿Alguien tiene alguna sugerencia específica sobre cómo obtengo una lista de todos los nombres de archivos de mi directorio de variables a mi variable de objeto SSIS?

¡Gracias de antemano!

EDITAR: Aquí está mi código actualizado:

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.IO;
using System.Collections.Generic;
using System.Data.SqlClient;

namespace ST_f5e4ae71f14d40d8811af21fa2a9a622.csproj
{
    [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    {

        #region VSTA generated code
        enum ScriptResults
        {
            Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
            Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
        };
        #endregion

        public void Main()
        {
        //Setup Connection String to SQL
            SqlConnection SQLConnection = new SqlConnection(
                                       //"user id=username;" +                  //UserName
                                       //"password=password;" +                 //Password
                                       "Trusted_Connection=true;" +             //Windows Auth
                                       "server=SERVERNAME;" +                   //SQL Server
                                       "database=DATABASENAME; " +              //SQL Database
                                       "connection timeout=30;" +               //connection timeout
                                       "Network Library=dbmssocn");             //TCP/IP Connection ("dbnmpntw" = Name Pipes)


        //Open the SQL Connection and remove the error code
            try
            {
                SQLConnection.Open();
            }
            catch (Exception OpenConnectionError)
            {
                Console.WriteLine(OpenConnectionError.ToString());
            }


        //Fetch a list of files from 'SourceNetworkFolderName' SSIS variable to an array called array1.
            string[] ArrayFileName = Directory.GetFiles(Dts.Variables["SourceNetworkFolderName"].Value.ToString());


        //Set up sql variable for table population
            SqlParameter SQLFileNameParam = new SqlParameter("@FileName", SqlDbType.VarChar, 100);


        //Loop through the array and insert into an SQL table
            foreach (string strFileName in ArrayFileName)
            {
            //Update sql variable with file names from array
                SQLFileNameParam.Value = strFileName;
            //Make the table insert
                SqlCommand SQLInsertToTable = new SqlCommand("INSERT INTO Archive_Extract_Network_Folder_File_List (FileName) VALUES (@FileName)", SQLConnection);
            //This snippit allows the use of the variable in the sql script.
                SQLInsertToTable.Parameters.Add(SQLFileNameParam);
            //Execute SqlCommand
                SQLInsertToTable.ExecuteNonQuery();
            //Clear the parameters and set the object to null    
                SQLInsertToTable.Parameters.Clear();
                SQLInsertToTable = null;
            }


        //Close the SQL Connection and remove the error code
            try
            {
                SQLConnection.Close();
            }
            catch (Exception CloseConnectionError)
            {
                Console.WriteLine(CloseConnectionError.ToString());
            }


        //Set array to null since it is no longer required.
            ArrayFileName = null;


        //Exit on success
            Dts.TaskResult = (int)ScriptResults.Success;
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta