C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 69 を表示中)
■40083 / )  Re[41]: ウェブブラウザで編集したページを、実際のページにアップデート
□投稿者/ RT (64回)-(2009/08/20(Thu) 10:36:21)
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や、ブラウザからはアクセスする事が出来ました。

ですが、このプログラムでは、エラーが出てしまいます。なぜなのでしょうか?

返信 編集キー/


管理者用

- Child Tree -