|
FTPサーバーからファイルをダウンロードするというプログラムで、
//ダウンロードするファイルのURI
Uri u = new Uri(Cmb_Url.Text);
//ダウンロードしたファイルの保存先
string downFile = "C:\\test.txt";
//FtpWebRequestの作成
System.Net.FtpWebRequest ftpReq = (System.Net.FtpWebRequest)
System.Net.WebRequest.Create(u);
//ログインユーザー名とパスワードを設定
ftpReq.Credentials = new System.Net.NetworkCredential("ユーザー名", "パスワード");
//MethodにWebRequestMethods.Ftp.DownloadFile("RETR")を設定
ftpReq.Method = System.Net.WebRequestMethods.Ftp.DownloadFile;
//要求の完了後に接続を閉じる
ftpReq.KeepAlive = false;
//ASCIIモードで転送する
ftpReq.UseBinary = false;
//PASSIVEモードを無効にする
ftpReq.UsePassive = false;
//FtpWebResponseを取得
System.Net.FtpWebResponse ftpRes =
(System.Net.FtpWebResponse)ftpReq.GetResponse();
//ファイルをダウンロードするためのStreamを取得
System.IO.Stream resStrm = ftpRes.GetResponseStream();
//ダウンロードしたファイルを書き込むためのFileStreamを作成
System.IO.FileStream fs = new System.IO.FileStream(
downFile, System.IO.FileMode.Create, System.IO.FileAccess.Write);
//ダウンロードしたデータを書き込む
byte[] buffer = new byte[1024];
while (true)
{
int readSize = resStrm.Read(buffer, 0, buffer.Length);
if (readSize == 0)
break;
fs.Write(buffer, 0, readSize);
}
fs.Close();
resStrm.Close();
//FTPサーバーから送信されたステータスを表示
Console.WriteLine("{0}: {1}", ftpRes.StatusCode, ftpRes.StatusDescription);
//閉じる
ftpRes.Close();
Cmb_Url.Text(コンボボックス)で、ftp://pgse.web.fc2.com/と入力したのですが、
↑のプログラムの
//FtpWebResponseを取得
System.Net.FtpWebResponse ftpRes =
(System.Net.FtpWebResponse)ftpReq.GetResponse();
の部分で、
要求された URI はこの FTP コマンドに対して無効です。
というエラーが出てしまいます。
>まずは、FFFTPなどのFTPソフトでアクセスできるのは確認済みですよね?
FFFTPや、ブラウザからはアクセスする事が出来ました。
ですが、このプログラムでは、エラーが出てしまいます。なぜなのでしょうか?
|