none
如何获取FTP服务器上的文件大小? RRS feed

答案

  • 你好,

    你可以尝试使用如下方法:

    ''' <summary>
    '''  This function will return a value indicating the size (bytes) of a file on a remote server using FTP.
    ''' </summary>
    ''' <param name="uri">A URI for this particular server and filename.</param>
    ''' <param name="cred">Network credentials needed to log on.</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function ReturnRemoteFileSize(ByVal uri As Uri, ByVal cred As NetworkCredential) As Long
    
            Dim retVal As Long = 0
    
            Try
                Dim thisFTP As FtpWebRequest = DirectCast(WebRequest.Create(uri), FtpWebRequest)
    
                With thisFTP
                    .Credentials = cred
                    .Method = WebRequestMethods.Ftp.GetFileSize
    
                    Using ftpResponse As FtpWebResponse = DirectCast(thisFTP.GetResponse, FtpWebResponse)
                        retVal = ftpResponse.ContentLength
                    End Using
                End With
    
            Catch ex As Exception
                retVal = -1
            End Try
    
            Return retVal
    
    End Function

    这里有一个Demo,可以显示下载文件大小和进度,可以作为参考:

    #Downloading Files in .NET With All Information: Progressbar, Download Speed, Supports Cancel and Resume
    http://www.codeproject.com/Articles/17979/Downloading-Files-in-NET-With-All-Information-Prog


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年7月3日 15:35
    版主