0

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

4

1 回答 1

0

如果由于某种原因您不需要使用脚本任务,那么您需要执行以下操作:

  1. 创建一个 Foreach 循环容器
  2. Collection选项卡Folder字段下,浏览到包含您从源 FTP 中提取文件的所有子文件夹的文件夹。(这是假设存在这样一个文件夹,希望它确实存在,或者您可以创建一个)
  3. 选中该Traverse Subfolders框,然后选择Fully Qualified
  4. Variable Mappings选项卡下,创建一个变量@FileNameWithPath或任何您想要调用的变量。索引默认值很好。
  5. 创建一个名为的包变量FileName
  6. 将表达式设置FileName为此,这将删除路径:

RIGHT(@[User::FileNameWithPath], FINDSTRING(REVERSE(@[User::FileNameWithPath]), "\\", 1 )-1)

  1. 创建一个名为的包变量FilePrefix
  2. 制作一个表达式以将前缀从FileName. 如果您在第一个下划线之前抓住所有内容,它将是这样的:

LEFT( @[User::FileName],FINDSTRING(((DT_WSTR, 150) @[User::FileName] ), "_", 1)-1)

  1. 创建另一个名为DestinationFolder.
  2. 使用FilePrefix您刚刚创建的变量来构建DestinationFolder. 会是这样的:

"\\Your destination FTP\" + @[User::FilePrefix]

  1. 在您的 Foreach 循环容器中,添加一个File System Task
  2. 将 设置File System Task为移动或复制,无论您需要什么,使用Source VariableofFileNameWithPath和目标变量DestinationFolder
于 2017-05-31T21:23:36.903 回答