次の方法で共有


FtpWebResponse.ContentLength プロパティ

定義

FTP サーバーから受信したデータの長さを取得します。

public:
 virtual property long ContentLength { long get(); };
public override long ContentLength { get; }
member this.ContentLength : int64
Public Overrides ReadOnly Property ContentLength As Long

プロパティ値

FTP サーバーから受信したデータのバイト数を格納している Int64 値。

次のコード例では、指定した FTP サーバーから ファイルをダウンロードします。 このプロパティには、ダウンロードしたファイルのバイト数が含まれます。

public static bool DownloadFileFromServer(Uri serverUri, string localFileName)
{
    // The serverUri parameter should start with the ftp:// scheme.
    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    // Note that the cast to FtpWebRequest is done only
    // for the purposes of illustration. If your application
    // does not set any properties other than those defined in the
    // System.Net.WebRequest class, you can use the following line instead:
    // WebRequest request = WebRequest.Create(serverUri);
    //
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
    request.Method = WebRequestMethods.Ftp.DownloadFile;

    FtpWebResponse response = (FtpWebResponse) request.GetResponse();

    Stream responseStream = null;
    StreamReader readStream = null;
    StreamWriter writeStream = null;
    try
    {
        responseStream = response.GetResponseStream();
        readStream = new StreamReader(responseStream, System.Text.Encoding.UTF8);
        // Display information about the data received from the server.
        Console.WriteLine("Bytes received: {0}",response.ContentLength);

        Console.WriteLine("Message from server: {0}", response.StatusDescription);
        Console.WriteLine("Resource: {0}", response.ResponseUri);

        // Write the bytes received from the server to the local file.
        if (readStream != null)
        {
            writeStream = new StreamWriter(localFileName, false);
            writeStream.Write(readStream.ReadToEnd());
        }
    }
    finally
    {
        if (readStream != null)
        {
            readStream.Close();
        }
        if (response != null)
        {
            response.Close();
        }
        if (writeStream != null)
        {
            writeStream.Close();
        }
    }
    return true;
}

注釈

FTP サーバーから応答ストリームが返されると、 ContentLength プロパティにはストリーム内のバイト数が含まれます。 ContentLength は、応答でデータが返されなかった場合、またはサーバーがコンテンツ長情報を送信しなかった場合は -1 を返します。 データが または が返されたはずの場合、戻り値は 0 以上です。 たとえば、 フィールドを使用する要求の ListDirectory 場合、 プロパティは ContentLength 常に -1 を返します。 メソッドを使用する要求の UploadFile 場合、 ContentLength プロパティは常に 0 です。 メソッドを使用 DownloadFile する要求の場合、ダウンロードしたファイルにデータが含まれている場合は プロパティが 0 より大きく、空の場合は 0 になります。

メソッドを使用する要求の GetFileSize 場合は、 ContentLength サーバー上の指定したファイルのサイズを返します。

適用対象

こちらもご覧ください