0

を使用してFTP taskSSISFTP サーバーから約 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
4

1 に答える 1

1

VB でファイル サイズを取得するためのリンクは次のとおりです

「選択したファイル サイズを事前に知るには、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

于 2015-04-16T21:13:55.647 に答える