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サーバーへの処理を変更します。
[…] VB.NET FtpWebRequestによるFTP通信 | ぷろぐらむノートFtpWebRequestクラスを使用して、FTPサーバーとの通信(アップロード、ダウンロード、ファイル削除等)の方法を記載します。 ・System.Netをインポートします。 FTPサーバーからファイルをダウンロードする FTPサーバーにファイルをアップロードする [crayonnote.websmil.com […]