|
using System;
using System.IO;
using System.Net;
// ********************************************************
// * 実行
// ********************************************************
public class App
{
public static void Main() {
String strTarget = "ftp://bekins.borland.com";
strTarget += "/groups/jp/cppbuild/";
String strFile = "freecommandlinetools2.exe";
strTarget += strFile;
// FTP 用インスタンス作成
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create(strTarget);
// Passive モード
request.UsePassive = true;
// バイナリ処理
request.UseBinary = true;
// ダウンロードコマンドをセット
request.Method = WebRequestMethods.Ftp.DownloadFile;;
// 接続用オブジェクトを FTP 用インスタンスにセット
request.Credentials = new NetworkCredential ("anonymous","user@domain");
// コマンド実行
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
// レスポンスより、ストリームを取得
Stream responseStream = response.GetResponseStream();
// バイナリストリームリーダーのインスタンス作成
BinaryReader reader = new BinaryReader(responseStream);
// ファイルストリーム作成
FileStream fs = new FileStream( strFile, FileMode.Create );
// ライタ作成
BinaryWriter w = new BinaryWriter(fs);
Boolean loop = true;
byte data = 0;
int nCount = 0;
while( loop ) {
try {
data = reader.ReadByte();
w.Write( data );
nCount++;
if ( nCount % 100000 == 0 ) {
Console.Write( "*" );
}
}
catch(EndOfStreamException e) {
loop = false;
}
}
// ファイルクローズ
w.Close();
fs.Close();
// リーダーを閉じる
reader.Close();
// 要求を閉じる
response.Close();
}
}
| |