使用 c# 导入文件目录,需要一个文件名列

本文关键字:一个 文件名 导入 文件目录 使用 | 更新日期: 2023-09-27 18:35:17

我有以下 c# 代码用于在文本文件目录中引入,并且需要在脚本组件的输出中添加一列,以便我可以捕获此循环中的每个文件名并将其添加到名为 FILENAME 的列中的每一行。这是 SSIS 中脚本转换组件的一部分,因此正常的派生列任务将不起作用。

我该怎么做,因为我似乎无法创建一个列,只是用var文件的内容填充它?

public override void CreateNewOutputRows()
{
    foreach (var file in Directory.GetFiles(@"C:'Pre'DataSource2_W'TextFiles'Batch1'", "*.txt"))
    { 
        string _nextLine;
        string[] _columns;
        char[] delimiters;
        delimiters = "|".ToCharArray();
        _nextLine = _reader.ReadLine();
        string[] lines = File.ReadAllLines(file, Encoding.UTF8);
        //Start at index 2 - and keep looping until index Length - 2 
        for (int i = 3; i < lines.Length - 2; i++)                  
        { _columns = lines[i].Split('|');    
                // Check if number of cols is 6
            if (_columns.Length > 4)
            {
                JazzORBuffer.AddRow();
                JazzORBuffer.Server = _columns[0];
                JazzORBuffer.Country = _columns[1];
                JazzORBuffer.QuoteNumber = _columns[2];
                JazzORBuffer.DocumentName = _columns[3];
                JazzORBuffer.CompanyNameSoldTo = _columns[4];
            }
            else
            {
                // Debug or messagebox the line that fails
                Thread t = new Thread(() => MessageBox.Show("file" + "Cols:" + _columns.Length.ToString() + " Line: " + lines[i])); 
                t.SetApartmentState(ApartmentState.STA); 
                t.Start(); 
                //MessageBox.Show("file" + "Cols:" + _columns.Length.ToString() + " Line: " + lines[i]);
                //return;
            }   
        }
    } 
}

编辑:更新的代码布局

使用 c# 导入文件目录,需要一个文件名列

您必须在

脚本转换编辑器的窗格中向输出添加一列Inputs and Outputs该列。

这将使脚本可以访问该列。

相关文章: