Aracılığıyla paylaş


FtpWebResponse.ContentLength Özellik

Tanım

FTP sunucusundan alınan verilerin uzunluğunu alır.

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

Özellik Değeri

Int64 FTP sunucusundan alınan veri bayt sayısını içeren bir değer.

Örnekler

Aşağıdaki kod örneği, belirtilen FTP sunucusundan bir dosya indirir. Bu özellik, indirilen dosyadaki bayt sayısını içerir.

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

Açıklamalar

FTP sunucusu tarafından bir yanıt akışı döndürülürse, ContentLength özelliği akıştaki bayt sayısını içerir. ContentLength yanıtta veri döndürülmediyse veya sunucu içerik uzunluğu bilgilerini göndermediyse −1 döndürür. Veri döndürüldüyse veya döndürülmesi gerekiyorsa, dönüş değeri sıfırdan büyük veya sıfıra eşittir. Örneğin, alanını ContentLength kullanan ListDirectory istekler için özelliği her zaman −1 döndürür. yöntemini ContentLength kullanan UploadFile istekler için özelliği her zaman sıfırdır. yöntemini kullanan DownloadFile istekler için, indirilen dosya veri içeriyorsa özelliği sıfırdan büyük ve boşsa sıfırdır.

yöntemini kullanan GetFileSize istekler için, ContentLength sunucuda belirtilen dosyanın boyutunu döndürür.

Şunlara uygulanır

Ayrıca bkz.