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 […]