0

次のテスト作品...

  public void test1()
  {
     string server="ftp://myserver.com/dev";
     string userName="myusername";
     string password="mypassword";

     FtpWebRequest req = (FtpWebRequest)WebRequest.Create( server );
     req.Credentials = new NetworkCredential( userName, password );
     req.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
     req.Timeout = 30000;
     req.UseBinary = false;
     req.EnableSsl = false;
     req.UsePassive = false;
     req.KeepAlive = true;

     using( FtpWebResponse resp = (FtpWebResponse)req.GetResponse() )
     {
        using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
        {
           string fileRecord = sr.ReadLine();
           while (fileRecord != null)
           {
              Console.WriteLine( fileRecord );
              fileRecord = sr.ReadLine();
           }
        }
     }
  }

次のテストは失敗しますが...

  public void test2()
  {
     string server="ftp://myserver.com/dev";
     string userName="myusername";
     string password="mypassword";

     FtpWebRequest req = (FtpWebRequest)WebRequest.Create( server );
     req.Credentials = new NetworkCredential( userName, password );
     req.Method = WebRequestMethods.Ftp.GetDateTimestamp;
     req.Timeout = 30000;
     req.UseBinary = false;
     req.EnableSsl = false;
     req.UsePassive = false;
     req.KeepAlive = true;

     using( FtpWebResponse resp = (FtpWebResponse)req.GetResponse() )
     {
        using( StreamReader sr = new StreamReader( resp.GetResponseStream() ) )
        {
           Console.WriteLine( resp.LastModified );
        }
     }
  }

エラーメッセージ付き:

テスト メソッド test2 が例外をスローしました: System.Net.WebException: リモート サーバーがエラーを返しました: (550) ファイルを利用できません (たとえば、ファイルが見つからない、アクセスできません)。

更新: デフォルトのポート番号を使用する別の ftp サイト (unix) で試してみたので、URL は " ftp://myserver.com/dev " で、GetDateTimestamp() は同じエラーで停止します。

クエリを適切に反映するために、件名と質問の本文を更新しました。

4

2 に答える 2

2

Please add more information.

Guess so far: You are trying to

  • a) Do a ls on the FTP server (works)
  • b) Get at timestamp from the FTP server (doesn't work)

Since everything else seems the same (address etc) I assume that both look at the same data. I would imagine that an ls just works when you're connected. But what timestamp are you trying to get there? The documentation for WebRequestMethods.Ftp.GetDateTimestamp says

Represents the FTP MDTM protocol method that is used to retrieve the date-time stamp from a file on an FTP server.

(Emphasis by me)

Which file? As far as I can see you are only specifying a folder (not sure if that works)? Did you try this with "ftp://myserver.com/dev/text.txt"?

于 2010-01-05T08:48:34.450 に答える
0

2 つの例の URI は同じようです。テスト ケースは問題の説明と一致しません。もっと具体的に言えますか?

(一般に、最も簡単に追加できるのは、破損している 1 つまたは 2 つの行が強調表示されたサンプル コードの 1 つのスニペットです。)

于 2010-01-04T23:08:54.133 に答える