FtpWebResponse.ContentLength Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 hiç 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şit olur. Ö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.