FtpWebResponse.ContentLength Propriedade

Definição

Obtém o tamanho dos dados recebidos do servidor FTP.Gets the length of the data received from the FTP server.

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

Valor da propriedade

Int64

Um valor Int64 que contém o número de bytes de dados recebidos do servidor FTP.An Int64 value that contains the number of bytes of data received from the FTP server.

Exemplos

O exemplo de código a seguir baixa um arquivo do no servidor FTP especificado.The following code example downloads a file from on the specified FTP server. Essa propriedade contém o número de bytes no arquivo baixado.This property contains the number of bytes in the downloaded file.

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

Comentários

Quando um fluxo de resposta é retornado pelo servidor FTP, a ContentLength propriedade contém o número de bytes no fluxo.When a response stream is returned by the FTP server, the ContentLength property contains the number of bytes in the stream. ContentLength Retorna − 1 se nenhum dado foi retornado na resposta ou se o servidor não enviou informações de comprimento do conteúdo.ContentLength returns −1 if no data was returned in the response or if the server did not send content length information. O valor de retorno será maior ou igual a zero se os dados tiverem sido ou não tiverem sido retornados.The return value is greater than or equal to zero if data was or should have been returned. Por exemplo, para solicitações que usam o ListDirectory campo, a ContentLength propriedade sempre retorna − 1.For example, for requests that use the ListDirectory field, the ContentLength property always returns −1. Para solicitações que usam o UploadFile método, a ContentLength propriedade é sempre zero.For requests that use the UploadFile method, the ContentLength property is always zero. Para solicitações que usam o DownloadFile método, a propriedade é maior que zero se o arquivo baixado continha dados e é zero se ele estava vazio.For requests that use the DownloadFile method, the property is greater than zero if the downloaded file contained data and is zero if it was empty.

Para solicitações que usam o GetFileSize método, ContentLength retorna o tamanho do arquivo especificado no servidor.For requests that use the GetFileSize method, ContentLength returns the size of the specified file on the server.

Aplica-se a

Confira também