If My.Computer.Network.IsAvailable Then
創(chuàng)新互聯(lián)公司是專業(yè)的宣州網(wǎng)站建設(shè)公司,宣州接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行宣州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
'如果可用
Else
'不可用
End If
Public Sub DownloadFile ( _
address As Uri, _
destinationFileName As String, _
userName As String, _
password As String, _
showUI As Boolean, _
connectionTimeout As Integer, _
overwrite As Boolean, _
onUserCancel As UICancelOption _
)
參數(shù)
address
String 或 Uri。要下載的文件的路徑,包括文件名和主機(jī)地址。必選。
destinationFileName
String。下載文件的文件名和路徑。必選。
userName
String。要進(jìn)行身份驗(yàn)證的用戶名。默認(rèn)值為空字符串 ""。
password
String。要進(jìn)行身份驗(yàn)證的密碼。默認(rèn)值為空字符串 ""。
showUI
Boolean。指定是否顯示操作進(jìn)度。默認(rèn)為 False。
connectionTimeout
Int32。以毫秒為單位的超時(shí)間隔。默認(rèn)值為 100 秒。
overwrite
Boolean。指定是否改寫現(xiàn)有文件。默認(rèn)為 False。
onUserCancel
UICancelOption。指定當(dāng)用戶在對話框(此對話框在 ShowUI 設(shè)置為 True 時(shí)顯示)上單擊“取消”或“否”時(shí)的行為。默認(rèn)為 ThrowException。
MSDN上的,看看對你有沒有幫助。GOOD LUCK!
Imports System.Net
Imports System.IO
Module FtpSample
Sub Main(ByVal args() As String)
If args.Length = 0 OrElse args(0).Equals("/?") Then
DisplayUsage()
ElseIf args.Length = 1 Then
Download(args(0))
ElseIf args.Length = 2 Then
If args(0).Equals("/list") Then
List(args(1))
Else
Upload(args(0), args(1))
End If
Else
Console.WriteLine("Unrecognized argument.")
End If
End Sub
Private Sub DisplayUsage()
Console.WriteLine("USAGE:")
Console.WriteLine(" FtpSample [/? | FTP download URL | local file")
Console.WriteLine(" FTP upload URL | /list FTP list URL]")
Console.WriteLine()
Console.WriteLine("where")
Console.WriteLine(" FTP download URL URL of a file to download from an FTP server.")
Console.WriteLine(" FTP upload URL Location on a FTP server to upload a file to.")
Console.WriteLine(" FTP list URL Location on a FTP server to list the contents of.")
Console.WriteLine(" local file A local file to upload to an FTP server.")
Console.WriteLine()
Console.WriteLine(" Options:")
Console.WriteLine(" /? Display this help message.")
Console.WriteLine(" /list Specifies the list command.")
Console.WriteLine()
Console.WriteLine("EXAMPLES:")
Console.WriteLine(" Download a file FtpSample ")
Console.WriteLine(" Upload a file FtpSample upload.txt ")
End Sub
Private Sub Download(ByVal downloadUrl As String)
Dim responseStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim reader As StreamReader = Nothing
Try
Dim downloadRequest As FtpWebRequest = _
WebRequest.Create(downloadUrl)
Dim downloadResponse As FtpWebResponse = _
downloadRequest.GetResponse()
responseStream = downloadResponse.GetResponseStream()
Dim fileName As String = _
Path.GetFileName(downloadRequest.RequestUri.AbsolutePath)
If fileName.Length = 0 Then
reader = New StreamReader(responseStream)
Console.WriteLine(reader.ReadToEnd())
Else
fileStream = File.Create(fileName)
Dim buffer(1024) As Byte
Dim bytesRead As Integer
While True
bytesRead = responseStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
fileStream.Write(buffer, 0, bytesRead)
End While
End If
Console.WriteLine("Download complete.")
Catch ex As UriFormatException
Console.WriteLine(ex.Message)
Catch ex As WebException
Console.WriteLine(ex.Message)
Catch ex As IOException
Console.WriteLine(ex.Message)
Finally
If reader IsNot Nothing Then
reader.Close()
ElseIf responseStream IsNot Nothing Then
responseStream.Close()
End If
If fileStream IsNot Nothing Then
fileStream.Close()
End If
End Try
End Sub
Private Sub Upload(ByVal fileName As String, ByVal uploadUrl As String)
Dim requestStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim uploadResponse As FtpWebResponse = Nothing
Try
Dim uploadRequest As FtpWebRequest = WebRequest.Create(uploadUrl)
uploadRequest.Method = WebRequestMethods.
' UploadFile is not supported through an Http proxy
' so we disable the proxy for this request.
uploadRequest.Proxy = Nothing
requestStream = uploadRequest.GetRequestStream()
fileStream = File.Open(fileName, FileMode.Open)
Dim buffer(1024) As Byte
Dim bytesRead As Integer
While True
bytesRead = fileStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
requestStream.Write(buffer, 0, bytesRead)
End While
' The request stream must be closed before getting the response.
requestStream.Close()
uploadResponse = uploadRequest.GetResponse()
Console.WriteLine("Upload complete.")
Catch ex As UriFormatException
Console.WriteLine(ex.Message)
Catch ex As IOException
Console.WriteLine(ex.Message)
Catch ex As WebException
Console.WriteLine(ex.Message)
Finally
If uploadResponse IsNot Nothing Then
uploadResponse.Close()
End If
If fileStream IsNot Nothing Then
fileStream.Close()
End If
If requestStream IsNot Nothing Then
requestStream.Close()
End If
End Try
End Sub
Private Sub List(ByVal listUrl As String)
Dim reader As StreamReader = Nothing
Try
Dim listRequest As FtpWebRequest = WebRequest.Create(listUrl)
listRequest.Method = WebRequestMethods.
Dim listResponse As FtpWebResponse = listRequest.GetResponse()
reader = New StreamReader(listResponse.GetResponseStream())
Console.WriteLine(reader.ReadToEnd())
Console.WriteLine("List complete.")
Catch ex As UriFormatException
Console.WriteLine(ex.Message)
Catch ex As WebException
Console.WriteLine(ex.Message)
Finally
If reader IsNot Nothing Then
reader.Close()
End If
End Try
End Sub
End Module
可以通過設(shè)置 Credentials 屬性來指定用于連接服務(wù)器的憑據(jù),也可以將它們包含在傳遞給 Create 方法的 URI 的 UserInfo 部分中。
從 FTP 服務(wù)器下載文件時(shí),如果命令成功,所請求的文件的內(nèi)容即在響應(yīng)對象的流中。通過調(diào)用 GetResponseStream 方法,可以訪問此流。
如果使用 FtpWebRequest 對象向服務(wù)器上載文件,則必須將文件內(nèi)容寫入請求流,請求流是通過調(diào)用 GetRequestStream 方法或其異步對應(yīng)方法(BeginGetRequestStream 和 EndGetRequestStream 方法)獲取的。必須寫入流并在發(fā)送請求之前關(guān)閉該流。
請求是通過調(diào)用 GetResponse 方法或其異步對應(yīng)方法(BeginGetResponse 和 EndGetResponse 方法)發(fā)送到服務(wù)器的。請求的操作完成時(shí),會返回一個(gè) FtpWebResponse 對象。FtpWebResponse 對象提供操作的狀態(tài)以及從服務(wù)器下載的所有數(shù)據(jù)。
需要。
在實(shí)際使用FTP文件服務(wù)器的過程中,經(jīng)常需要遠(yuǎn)程下載解析文件。為提高效率,需要判斷文件存在與否,有選擇的進(jìn)行解析。
FTP協(xié)議是一個(gè)用于在計(jì)算機(jī)網(wǎng)絡(luò)上客戶端和服務(wù)器之間進(jìn)行文件傳輸?shù)膽?yīng)用層協(xié)議,包括FTP服務(wù)器和FTP客戶端兩個(gè)組成部分。FTP能操作任何類型的文件而不需要進(jìn)一步處理,但有著極高的延時(shí),從開始請求到第一次接收需求數(shù)據(jù)之間的時(shí)間較長,并不時(shí)地執(zhí)行一些冗長的登錄進(jìn)程。