在文件夹间复制文件;使用csv / excel中标识的文件前缀

时间:2018-05-22 10:18:53

标签: file ssis copy

我正在使用此工具的第一步,并希望将一组excel文件从一个文件夹复制到另一个文件夹。 源文件夹有一组后缀为YYYYMM的文件,我只需复制所需月份的文件(查询的因变量到BD)。

源文件夹包含多个带有“prefix_name_YYYYMM.xlsx”的excel文件名,前缀可用于txt文件或excel(更容易实现!)。

我已经为文件夹中的所有文件阅读了一些关于“Foreach循环容器”和“文件系统任务”的文章。

但我无法想象我将如何获取各种文件名/前缀来提供循环并获取所有文件prefix1_YYYYMM _ *。 XLSX

注意:客户端不希望使用“前缀文件列表”填充sql server表。

2 个答案:

答案 0 :(得分:0)

如果你想获得各种文件名/前缀来提供循环使用脚本任务中的c#代码

   string SourceDirectory = Dts.Variables["User::varSourceFolder"].Value.ToString();
                string[] fileEntries = Directory.GetFiles(SourceDirectory);

foreach (string fileName in fileEntries)
                {.....}

答案 1 :(得分:0)

这可以通过在Foreach循环中使用文件系统任务来实现。以下步骤对此进行了进一步概述。在文件系统任务中需要注意的几件事,您需要将DelayValidation设置为true,如果打算复制将替换旧文件的新文件,则还需要设置OverwriteDestination真实。

  • 向您的控制流添加一个Foreach循环,并将其配置为Foreach文件枚举器。
  • 在“集合”窗格上,选择源文件夹。
  • 对于“文件”字段,将您的前缀与*一起使用以获取带有该前缀的所有文件。例如,prefix_name_YYYYMM * .xlsx。
  • 在“变量映射”窗格中,添加一个字符串变量,并将其设置为索引0。
  • 在Foreach循环中,添加带有复制文件操作的文件系统任务。对于源连接,将IsSourcePathVariable设置为true,然后在Foreach循环的映射中使用与SourceVariable.
  • 相同的变量。