Sdílet prostřednictvím


FtpWebResponse.ContentLength Vlastnost

Definice

Získá délku dat přijatých ze serveru FTP.

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

Hodnota vlastnosti

Hodnota Int64 , která obsahuje počet bajtů dat přijatých ze serveru FTP.

Příklady

Následující příklad kódu stáhne soubor ze zadaného serveru FTP. Tato vlastnost obsahuje počet bajtů ve staženého souboru.

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 = dynamic_cast<FtpWebRequest^>(WebRequest::Create( serverUri ));
   request->Method = WebRequestMethods::Ftp::DownloadFile;
   FtpWebResponse^ response = dynamic_cast<FtpWebResponse^>(request->GetResponse());
   Stream^ responseStream = nullptr;
   StreamReader^ readStream = nullptr;
   StreamWriter^ writeStream = nullptr;
   try
   {
      responseStream = response->GetResponseStream();
      readStream = gcnew 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 != nullptr )
      {
         writeStream = gcnew StreamWriter( localFileName,false );
         writeStream->Write( readStream->ReadToEnd() );
      }
   }
   finally
   {
      if ( readStream != nullptr )
      {
         readStream->Close();
      }

      if ( response != nullptr )
      {
         response->Close();
      }

      if ( writeStream != nullptr )
      {
         writeStream->Close();
      }
   }

   return true;
}
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;
}

Poznámky

Když server FTP vrátí datový proud odpovědi, ContentLength vlastnost obsahuje počet bajtů v datovém proudu. ContentLength vrátí hodnotu −1, pokud v odpovědi nebyla vrácena žádná data nebo pokud server neodeslal informace o délce obsahu. Vrácená hodnota je větší nebo rovna nule, pokud byla nebo měla být vrácena data. Například u požadavků, které používají ListDirectory pole, ContentLength vrátí vlastnost vždy hodnotu −1. U požadavků, které používají metodu UploadFile , ContentLength je vlastnost vždy nulová. U požadavků, které používají metodu DownloadFile , je vlastnost větší než nula, pokud stažený soubor obsahuje data, a je nulová, pokud byl prázdný.

U požadavků, které používají metodu GetFileSize , ContentLength vrátí velikost zadaného souboru na serveru.

Platí pro

Viz také