要怎麼利用wininet.dll來做FTP相關的功能呢?下面相關部分可以參考看看,這邊主要是利用呼叫Win32API來做相關功能而.net framework中也有FTPClient相關的東西可以用,FTPClient的部分就請自行查詢MSDN嚕~之後有時間再來整理。
首先有些參考資料可以看看
下面是參考上面所提修改而來的code
Imports System.Runtime.InteropServices
Public Class cFTP
' Internet Session Handle (InternetOpen)
Private _hInternet As Integer
' Internet Service Handle (InternetConnect)
Private _hConnect As Integer
Private _ServerName As String = ""
Private _UserName As String = "anonymous"
Private _Password As String = ""
''儲存是否需要密碼驗證的狀態
Private _IsNeedPassword As Boolean = True
''儲存是否需要via Proxy
Private _IsNeedProxy As Boolean = False
''儲存傳輸模式(ASCII or Binary (default to Binary)
Private _TransferMode As Integer = FTP_TRANSFER_TYPE_BINARY
Public Sub New()
End Sub
#Region "Const"
' dwAccessType: 設定Internet連結的存取方式
Private Const INTERNET_OPEN_TYPE_PRECONFIG As Short = 0
Private Const INTERNET_OPEN_TYPE_DIRECT As Short = 1
Private Const INTERNET_OPEN_TYPE_PROXY As Short = 3
Private Const INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY As Short = 4
' dwFlags
Private Const INTERNET_FLAG_FROM_CACHE As Integer = &H1000000
Private Const INTERNET_FLAG_OFFLINE As Integer = &H1000000
Private Const INTERNET_FLAG_MAKE_PERSISTENT As Integer = &H2000000
Private Const INTERNET_FLAG_NO_CACHE_WRITE As Integer = &H4000000
Private Const INTERNET_FLAG_ASYNC As Integer = &H10000000
Private Const INTERNET_FLAG_EXISTING_CONNECT As Integer = &H20000000
Private Const INTERNET_FLAG_PASSIVE As Integer = &H8000000
' nServerPort:設定Internet服務之通訊埠(port)
Private Const INTERNET_DEFAULT_FTP_PORT As Short = 21
Private Const INTERNET_DEFAULT_GOPHER_PORT As Short = 70
Private Const INTERNET_DEFAULT_HTTP_PORT As Short = 80
Private Const INTERNET_DEFAULT_HTTPS_PORT As Short = 443
Private Const INTERNET_DEFAULT_SOCKS_PORT As Short = 1080
Private Const INTERNET_INVALID_PORT_NUMBER As Short = 0
' dwService:設定Internet服務類型
Private Const INTERNET_SERVICE_FTP As Short = 1
Private Const INTERNET_SERVICE_GOPHER As Short = 2
Private Const INTERNET_SERVICE_HTTP As Short = 3
' dwInternetFlags
Private Const FTP_TRANSFER_TYPE_ASCII As Short = &H1S ' ASCII 模式
Private Const FTP_TRANSFER_TYPE_BINARY As Short = &H2S ' Binary模式
Private Const FTP_TRANSFER_TYPE_UNKNOWN As Short = &H0S ' 預設為Binary模式
Private Const INTERNET_FLAG_TRANSFER_ASCII As Short = &H1S ' ASCII 模式
Private Const INTERNET_FLAG_TRANSFER_BINARY As Short = &H2S ' Binary模式
Private Const FILE_ATTRIBUTE_DIRECTORY As Short = &H10S
Private Const FILE_ATTRIBUTE_ARCHIVE As Short = &H20S
#End Region
#Region "Win32API"
bauann@dotblog