1

FtpWebRequestを使用してFTPサーバーに接続しており、WebRequestMethods.Ftp.ListDirectoryDe​​tailsを使用してディレクトリの詳細を適切に一覧表示できます。ただし、リモートサーバーからの応答には日、月、時刻がありますが、年はありません。

-rw-rw-rw-1ユーザーグループ9496月2日08:43Unsubscribes_20100602.zip

-rw-rw-rw-1ユーザーグループ17736月1日06:48export_142571709.txt

-rw-rw-rw-1ユーザーグループ17736月1日06:50export_142571722.txt

-rw-rw-rw-1ユーザーグループ980Jun1 06:51 export_142571734.txt

これは私が書いているアプリケーションに必要なので、WebRequestMethods.Ftp.GetDateTimestampを使用して各ファイルのdatetimestampを取得しようとしましたが、応答は常に空です。例外はスローされません。

try
{
    FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(path);

    ftp.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
    ftp.Method = WebRequestMethods.Ftp.GetDateTimestamp;

    try
    {
        Stream stream = ftp.GetResponse().GetResponseStream();
        StreamReader sReader = new StreamReader(stream);

        return sReader;
    }
    catch (Exception exp)
    {
        throw new Exception(String.Format("An error occured getting the timestamp for {0}: {1}<br />", path, exp.Message));
    }
}

なぜこれが起こるのか誰かが何か考えを持っていますか?

4

1 に答える 1

3

メソッドは、通常のGetDateTimestampストリームでデータを返しません。ContentLengthファイル サイズ メソッドがヘッダー/プロパティにデータを返すように、GetDateTimestampメソッドはヘッダー/プロパティにデータを持ちLastModifiedます。

    FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(path);

    ftp.Credentials = new NetworkCredential(_ftpUsername, _ftpPassword);
    ftp.Method = WebRequestMethods.Ftp.GetDateTimestamp;

    try
    {
       using(FtpWebResponse response = (FtpWebResponse)ftp.GetResponse())
       {
           return response.LastModified;
       }
    }
    catch
    {
        throw new Exception(String.Format("An error occured getting the timestamp for {0}: {1}<br />", path, exp.Message));
    }

ところで、この回答も確認できます。

于 2010-06-14T09:43:42.727 に答える