File 在文件夹之间复制文件;使用csv/excel中标识的文件前缀
我正在执行此工具的第一步,希望将一组excel文件从一个文件夹复制到另一个文件夹。 源文件夹有一组后缀为YYYYMM的文件,我必须只复制所需月份的文件(查询到BD的因变量) 源文件夹包含多个带有“prefix_name_YYYYMM.xlsx”的excel文件名,这些前缀可以在txt文件中使用,也可以在excel中使用(这更容易实现!) 我读过一些关于文件夹中所有文件的“Foreach循环容器”和“文件系统任务”的文章 但我无法想象如何获得各种文件名/前缀来为循环提供信息,并获得所有文件的前缀x1_YYYYMM*。XLSxFile 在文件夹之间复制文件;使用csv/excel中标识的文件前缀,file,ssis,copy,File,Ssis,Copy,我正在执行此工具的第一步,希望将一组excel文件从一个文件夹复制到另一个文件夹。 源文件夹有一组后缀为YYYYMM的文件,我必须只复制所需月份的文件(查询到BD的因变量) 源文件夹包含多个带有“prefix_name_YYYYMM.xlsx”的excel文件名,这些前缀可以在txt文件中使用,也可以在excel中使用(这更容易实现!) 我读过一些关于文件夹中所有文件的“Foreach循环容器”和“文件系统任务”的文章 但我无法想象如何获得各种文件名/前缀来为循环提供信息,并获得所有文件的前缀x
注意:客户机不希望用“前缀文件列表”填充sql server表。如果要获取各种文件名/前缀以提供循环,请在脚本任务中使用c代码
string SourceDirectory = Dts.Variables["User::varSourceFolder"].Value.ToString();
string[] fileEntries = Directory.GetFiles(SourceDirectory);
foreach (string fileName in fileEntries)
{.....}
这可以通过在Foreach循环中使用文件系统任务来实现。以下步骤进一步概述了这一点。在文件系统任务中需要注意的几点是,您需要将
DelayValidation
设置为true,如果您打算复制新文件以替换旧文件,则OverwriteDestination
也需要设置为true
- 向控制流添加Foreach循环,并将其配置为Foreach文件枚举器
- 在“集合”窗格上选择源文件夹
- 对于“文件”字段,使用前缀
获取具有此前缀的所有文件。例如,前缀_name_YYYYMM*.xlsx*
- 在变量映射窗格中,添加字符串变量,并将其设置为索引0
- 在Foreach循环中,使用copy File操作添加一个文件系统任务。对于源连接,将
设置为true,然后添加在Foreach循环映射中使用的与IsSourcePathVariable
SourceVariable相同的变量。