SSIS FTP文件名和文件大小列表

时间:2015-04-16 19:45:54

标签: ssis ftp script-task

我们使用 FTP task 中的 SSIS 从FTP服务器下载大约500个文件,最大文件大小约为2千兆字节。下载失败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

1 个答案:

答案 0 :(得分:1)

以下是获取VB中文件大小的链接:http://www.codeproject.com/Questions/205915/VB-NET-get-the-size-of-a-file-Downloading-in-FTP-S

“您应该使用GetFileSize [^]字段预先知道所选的文件大小。”

Dim ftp As Net.FtpWebRequest = GetRequest(URI)
ftp.Method = Net.WebRequestMethods.Ftp.GetFileSize

她是另一个链接http://www.dreamincode.net/forums/topic/317225-want-to-get-ftp-server-file-name-fil-size-in-listview/

尝试使用ListDirectoryDetails