FtpWebRequestクラスを使用して、FTPサーバーとの通信(アップロード、ダウンロード、ファイル削除等)の方法を記載します。
・System.Netをインポートします。
FTPサーバーからファイルをダウンロードする
'ダウンロードしたファイルの保存先 Dim fileName As String = "C:\work\sample.txt" 'ダウンロードするファイルのURI Dim reqUri As New Uri("ftp://192.168.2.141/sample.txt") Dim ftpReq As FtpWebRequest = FtpWebRequest.Create(reqUri) 'ダウンロードに設定 ftpReq.Method = System.Net.WebRequestMethods.Ftp.DownloadFile 'ユーザー名とパスワードを設定 ftpReq.Credentials = New NetworkCredential("username", "password") '要求の完了後に接続を閉じる ftpReq.KeepAlive = False 'ASCIIモードで転送する ftpReq.UseBinary = False 'PASSIVEモードを無効にする ftpReq.UsePassive = False 'FtpWebResponseを取得する Using ftpRes As FtpWebResponse = ftpReq.GetResponse() 'ファイルをダウンロードするためのStreamを取得する Using reqStrm As System.IO.Stream = ftpRes.GetResponseStream() '書き込むためのFileStreamを作成 Using fStrm As New FileStream(fileName, FileMode.Create, FileAccess.Write) Dim buffer(1023) As Byte While True Dim bSize As Integer = reqStrm.Read(buffer, 0, buffer.Length) If bSize = 0 Then Exit While End If fStrm.Write(buffer, 0, bSize) End While End Using End Using End Using
FTPサーバーにファイルをアップロードする
'アップロードするファイル Dim fileName As String = "C:\work\sample.txt" 'アップロード先のURI Dim reqUri As New Uri("ftp://192.168.2.141/sample.txt") Dim ftpReq As FtpWebRequest = FtpWebRequest.Create(reqUri) 'アップロードに設定 ftpReq.Method = WebRequestMethods.Ftp.UploadFile 'ユーザー名とパスワードを設定 ftpReq.Credentials = New NetworkCredential("username", "password") '要求の完了後に接続を閉じる ftpReq.KeepAlive = False 'ASCIIモードで転送する ftpReq.UseBinary = False 'PASVモードを無効にする ftpReq.UsePassive = False 'HTTP Proxy 'ftpReq.Proxy = Nothing 'System.Net.WebRequest.DefaultWebProxy = Nothing 'ファイルをアップロードするためのStreamを取得 Using reqStrm As Stream = ftpReq.GetRequestStream() 'アップロードするファイルを開く Using fStrm As New FileStream(fileName, FileMode.Open, FileAccess.Read) 'アップロードStreamに書き込む Dim buffer(1023) As Byte While True Dim bSize As Integer = fStrm.Read(buffer, 0, buffer.Length) If bSize = 0 Then Exit While End If reqStrm.Write(buffer, 0, bSize) End While End Using End Using
FTPサーバーの短いファイル一覧を取得する
Dim reqUri As New Uri("ftp://192.168.2.141/") Dim ftpReq As FtpWebRequest = FtpWebRequest.Create(reqUri) '短いファイル一覧の取得に設定 ftpReq.Method = WebRequestMethods.Ftp.ListDirectory 'ユーザー名とパスワードを設定 ftpReq.Credentials = New NetworkCredential("username", "password") Dim strList As String = "" Using res As FtpWebResponse = ftpReq.GetResponse() Using reqStrm As New StreamReader(res.GetResponseStream()) strList = reqStrm.ReadToEnd() End Using End Using Console.WriteLine(strList)
FTPサーバーのファイルを削除する
Dim reqUri As New Uri("ftp://192.168.2.141/sample.txt") Dim ftpReq As FtpWebRequest = FtpWebRequest.Create(reqUri) 'ファイルの削除に設定 ftpReq.Method = WebRequestMethods.Ftp.DeleteFile 'ユーザー名とパスワードを設定 ftpReq.Credentials = New NetworkCredential("username", "password") Using ftpRes As FtpWebResponse = ftpReq.GetResponse() End Using
※FtpWebRequest.Method プロパティにより、FTPサーバーへの処理を変更します。