.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」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|