WebClientを使ってFTPサーバーからファイルをダウンロード、アップロードする注意:ここで紹介している方法は、.NET Framework 2.0以降でのみ使用できます。.NET Framework 1.1以前でFTPサーバーにアクセスする方法は、「[HOWTO] Visual Basic .NET を使用してプラグ可能なプロトコルを記述し、マネージ クラスで FTP をサポートする方法」や「Visual Basic .NET または Visual Basic 2005 を使用して FTP サイトにアクセスする方法」などをご覧ください。 .NET Framework 2.0からは、WebClientクラスを使って簡単にFTPサーバーからファイルをダウンロード、またはFTPサーバーにファイルをアップロードすることができるようになりました。 FTPサーバーからファイルをダウンロードする「ファイルをダウンロードし保存する」で紹介した方法と全く同じです。WebClient.DownloadFileメソッドを使えば、簡単です。 下記の例では、"ftp://localhost/test.txt"からファイルをダウンロードして、"C:\test.txt"に保存しています。 [VB.NET] 'WebClientオブジェクトを作成 Dim wc As New System.Net.WebClient() 'ログインユーザー名とパスワードを指定 wc.Credentials = New System.Net.NetworkCredential("username", "password") 'FTPサーバーからダウンロードする wc.DownloadFile("ftp://localhost/test.txt", "C:\test.txt") '解放する wc.Dispose() [C#] //WebClientオブジェクトを作成 System.Net.WebClient wc = new System.Net.WebClient(); //ログインユーザー名とパスワードを指定 wc.Credentials = new System.Net.NetworkCredential("username", "password"); //FTPサーバーからダウンロードする wc.DownloadFile("ftp://localhost/test.txt", @"C:\test.txt"); //解放する wc.Dispose(); FTPサーバーにファイルをアップロードする「"multipart/form-data"でデータを送信する」の「WebClientを使った方法」と同じで、WebClient.UploadFileメソッドを使ってファイルをアップロードすることができます。 次の例では、"C:\test.txt"を"ftp://localhost/test.txt"にアップロードしています。 [VB.NET] 'WebClientオブジェクトを作成 Dim wc As New System.Net.WebClient() 'ログインユーザー名とパスワードを指定 wc.Credentials = New System.Net.NetworkCredential("username", "password") 'FTPサーバーにアップロード wc.UploadFile("ftp://localhost/test.txt", "C:\test.txt") '解放する wc.Dispose() [C#] //WebClientオブジェクトを作成 System.Net.WebClient wc = new System.Net.WebClient(); //ログインユーザー名とパスワードを指定 wc.Credentials = new System.Net.NetworkCredential("username", "password"); //FTPサーバーにアップロード wc.UploadFile("ftp://localhost/test.txt", @"C:\test.txt"); //解放する wc.Dispose(); STOUやAPPEコマンドでFTPサーバーにアップロードするWebClient.UploadFileメソッドの第2引数に"WebRequestMethods.Ftp.UploadFileWithUniqueName"を指定することにより、"STOU"(重複しないファイル名で保存)コマンドでFTPサーバーにアップロードすることができます。また、"WebRequestMethods.Ftp.AppendFile"を指定することにより、"APPE"(追加書き込み)コマンドでFTPサーバーにアップロードすることもできます。何も指定しないと、"STOR"コマンドでアップロードします。これらのコマンドについて詳しくは、こちらをご覧ください。 WebClientクラスの仕様上記のようにWebClientクラスを使ってFTPサーバーにアクセスする時、WebClientクラスは内部でFtpWebRequestとFtpWebResponseクラスを使用しています。FtpWebRequestとFtpWebResponseクラスを使用してファイルをダウンロード、アップロードする方法はこちらで説明していますが、WebClientクラスでも同じようなことを行っています。ただし、細かい設定は指定できず、FtpWebRequestのデフォルトの設定がそのまま使われます。つまり、PASVモードが有効(FtpWebRequest.UsePassiveプロパティがTrue)で、バイナリモード(FtpWebRequest.UseBinaryプロパティがTrue)となります。さらに、FtpWebRequest.KeepAliveプロパティがFalseのため、WebClient.Disposeメソッドを呼び出してもログアウトしません。 これらの設定を変更したいのであれば、こちらのように、FtpWebRequestクラスをお使いください。 注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright 2002-2008 DOBON!. All rights reserved.
|