使用sftp中的ssis将多个文件下载到多个文件夹

时间:2017-05-31 17:39:15

标签: c# ssis ftp script-task

我正在尝试使用SSIS中的FTP任务和脚本任务将位于多个文件夹中的多个文件从FTP站点下载到特定驱动器上的多个文件夹中。我没有将文件下载到一个特定的文件夹中。我到处寻找,我找不到任何好的信息。任何帮助深表感谢。感谢。

1 个答案:

答案 0 :(得分:0)

如果由于某种原因你不需要使用脚本任务,那么这就是你想要做的:

  1. 创建Foreach循环容器
  2. Collection标签Folder字段下,浏览到包含从源FTP中提取文件的所有子文件夹的文件夹。 (这假设存在这样一个文件夹,希望它可以或者你可以创建一个文件夹)
  3. 选中Traverse Subfolders框,然后选择Fully Qualified
  4. Variable Mappings标签下,创建一个变量@FileNameWithPath或您要调用的任何内容。索引默认没问题。
  5. 创建名为FileName
  6. 的包变量
  7. FileName的表达式设置为此,这将删除路径:
  8. RIGHT(@[User::FileNameWithPath], FINDSTRING(REVERSE(@[User::FileNameWithPath]), "\\", 1 )-1)

    1. 创建名为FilePrefix
    2. 的包变量
    3. 创建一个表达式,将前缀从FileName中拉出来。如果您在第一个下划线之前抓住所有内容,那就是这个:
    4. LEFT( @[User::FileName],FINDSTRING(((DT_WSTR, 150) @[User::FileName] ), "_", 1)-1)

      1. 创建另一个名为DestinationFolder的变量。
      2. 使用您刚创建的FilePrefix变量构建DestinationFolder的表达式。就是这样:
      3. "\\Your destination FTP\" + @[User::FilePrefix]

        1. 在您的Foreach循环容器中,添加File System Task
        2. 使用File System Task Source Variable和目标变量FileNameWithPath
        3. DestinationFolder设置为移动或复制,无论您需要什么