繁体   English   中英

在文件夹之间复制文件; 带有在csv / excel中标识的文件前缀

[英]Copy files between folders; with file prefixes identified in a csv / excel

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

源文件夹包含几个带有“ prefix_name_YYYYMM.xlsx”的excel文件名,并且前缀将在txt文件或excel中可用(这更易于实现!)。

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

但是我无法想象如何获得各种文件名/前缀来填充循环并获取所有文件prefix1_YYYYMM _ *。 XLSx

注意:客户端不希望使用“前缀文件列表”填充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文件枚举器。
  • 在“集合”窗格上,选择源文件夹。
  • 对于“文件”字段,请在您的前缀前加上*以获取所有带有该前缀的文件。 例如,prefix_name_YYYYMM * .xlsx。
  • 在“变量映射”窗格中,添加一个字符串变量,并将其设置为索引0。
  • 在Foreach循环中,使用复制文件操作添加文件系统任务。 对于源连接,将IsSourcePathVariable设置为true,然后添加在Foreach循环的映射中使用的相同变量作为SourceVariable.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM