我正在尝试使用 SSIS 中的 FTP 任务和脚本任务将位于多个文件夹中的多个文件从 FTP 站点下载到特定驱动器上的多个文件夹中。我没有将文件下载到一个特定的文件夹中。我到处找,我找不到任何好的信息。任何帮助深表感谢。谢谢。
问问题
941 次
1 回答
0
如果由于某种原因您不需要使用脚本任务,那么您需要执行以下操作:
- 创建一个 Foreach 循环容器
- 在
Collection
选项卡Folder
字段下,浏览到包含您从源 FTP 中提取文件的所有子文件夹的文件夹。(这是假设存在这样一个文件夹,希望它确实存在,或者您可以创建一个) - 选中该
Traverse Subfolders
框,然后选择Fully Qualified
- 在
Variable Mappings
选项卡下,创建一个变量@FileNameWithPath
或任何您想要调用的变量。索引默认值很好。 - 创建一个名为的包变量
FileName
- 将表达式设置
FileName
为此,这将删除路径:
RIGHT(@[User::FileNameWithPath], FINDSTRING(REVERSE(@[User::FileNameWithPath]), "\\", 1 )-1)
- 创建一个名为的包变量
FilePrefix
- 制作一个表达式以将前缀从
FileName
. 如果您在第一个下划线之前抓住所有内容,它将是这样的:
LEFT( @[User::FileName],FINDSTRING(((DT_WSTR, 150) @[User::FileName] ), "_", 1)-1)
- 创建另一个名为
DestinationFolder
. - 使用
FilePrefix
您刚刚创建的变量来构建DestinationFolder
. 会是这样的:
"\\Your destination FTP\" + @[User::FilePrefix]
- 在您的 Foreach 循环容器中,添加一个
File System Task
- 将 设置
File System Task
为移动或复制,无论您需要什么,使用Source Variable
ofFileNameWithPath
和目标变量DestinationFolder
于 2017-05-31T21:23:36.903 回答