我们使用FTP task
inSSIS
从 FTP 服务器下载大约 500 个文件,其中最大的文件大小约为 2 GB。50% 的时间下载失败。我们想在我们的SSIS
包中实现一个步骤,FTP Server
在我们尝试下载它们进行处理之前检索文件列表和文件大小。FTP Task
没有检索文件列表和文件大小的操作。你能提供一个如何做到这一点的例子吗?
下面是Script Task
我找到的用于检索文件名列表并存储在 XML 文件中的代码块。
Dim ftpFileNameListXML As New StringBuilder
ftpFileNameListXML.AppendLine("<filelist>")
Dim ftpcm As ConnectionManager = Dts.Connections("FTP")
Dim ftp As FtpClientConnection = _
New FtpClientConnection(ftpcm.AcquireConnection(Nothing))
Dim ftpFileNames() As String
Dim ftpFolderNames() As String
ftp.Connect()
ftp.SetWorkingDirectory(Dts.Variables("FtpWorkingDirectory").Value.ToString())
ftp.GetListing(ftpFolderNames, ftpFileNames)
ftp.Close()
Dim i As Integer
For i = 0 To ftpFileNames.GetUpperBound(0)
ftpFileNameListXML.Append("<file name='")
ftpFileNameListXML.Append(ftpFileNames(i))
ftpFileNameListXML.AppendLine("'/>")
Next i
ftpFileNameListXML.AppendLine("</filelist>")
Dts.Variables("FtpFileListXML").Value = ftpFileNameListXML.ToString()
Dts.TaskResult = ScriptResults.Success