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サーバーへの処理を変更します。