|
.NET TIPS WebClientクラスでFTPによりファイル転送を行うには?[2.0のみ、C#、VB]デジタルアドバンテージ 遠藤 孝信2006/06/16 |
![]() |
|
|
|
「TIPS:WebClientクラスでWebページを取得するには?」では、WebClientクラス(System.Net名前空間)を使ってWebサーバ上のデータをダウンロードする簡便な方法を示しているが、.NET Framework 2.0ではこのWebClientクラスがFTPプロトコルにも対応している。
本稿では、WebClientクラスを使ったFTPによるファイルのダウンロード/アップロードについてまとめる。
FTPによるファイルのダウンロード
FTPによりファイルのダウンロードを行う場合にも、Webの場合と同様にDownloadFileメソッドが利用できる。このメソッドの第1パラメータにはダウンロードするファイルのURLを指定するが、FTPの場合にはこれを以下のような形式のURLで指定する。
ftp://<FTPサーバ名>/<ファイルのパス>
例えば、「ftp.microsoft.com」という名前のFTPサーバの「developr」ディレクトリにあるファイル「readme.txt」は以下のようなURLとなる(このURLは実際にアクセス可能)。
ftp://ftp.microsoft.com/developr/readme.txt
また、FTPサーバにアクセスする場合には通常、ユーザー名とパスワードによる認証が必要になるが、この認証情報はあらかじめWebClientオブジェクトのCredentialsプロパティに設定しておく必要がある。.NETではネットワーク・アクセスに用いられる認証情報は、NetworkCredentialクラス(System.Net名前空間)のオブジェクトで表される。
以下にWebClientクラスによりFTPでダウンロードを行うサンプル・プログラムを示す。
|
|
| WebClientクラスによりFTPでダウンロードを行うC#のサンプル・プログラム(wcftpget.cs) | |
|
|
| WebClientクラスによりFTPでダウンロードを行うVBのサンプル・プログラム(wcftpget.vb) | |
このサンプル・プログラムでは、ユーザー名「user01」、パスワード「mypassword」というアカウントでFTPサーバ「servername」にログインし、pubディレクトリにあるファイル「secret.png」をダウンロードして、「tmp.png」というファイル名でカレント・ディレクトリに保存する。
FTPによるファイルのアップロード
WebClientクラスではFTPによりファイルをアップロードするのも簡単で、DownloadFileメソッドの替わりにUploadFileメソッドを利用するだけだ。
以下のサンプル・プログラムでは、カレント・ディレクトリにあるファイル「tmp.png」を、FTPサーバの「upload」ディレクトリに「secret.png」というファイル名でアップロードする。
|
|
| WebClientクラスによりFTPでアップロードを行うC#のサンプル・プログラム(wcftpput.cs) | |
|
|
| WebClientクラスによりFTPでアップロードを行うVBのサンプル・プログラム(wcftpput.vb) | |
なお、このサンプル・プログラムを連続して実行した場合には2回目以降で例外が発生すると思われるが、これはたいていのFTPサーバで、すでにあるファイルへの上書きがエラーとなるためだ。実際に試す場合にはこの点に注意しておいてほしい。
ちなみに、Credentialsプロパティを設定せずにFTPサーバにアクセスした場合には、デフォルトでユーザー名「anonymous」、パスワード「anonymous@」が使用される。
また、WebRequest/WebResponseクラスを使ってFTPを行う方法については「TIPS:WebRequest/WebResponseクラスでFTPによりファイル転送を行うには?」で解説している。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:クラス・ライブラリ 処理対象:ネットワーク 使用ライブラリ:WebClientクラス(System.Net名前空間) 使用ライブラリ:NetworkCredentialクラス(System.Net名前空間) 関連TIPS:WebClientクラスでWebページを取得するには? 関連TIPS:WebRequest/WebResponseクラスでFTPによりファイル転送を行うには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


