FtpWebResponse.ContentLength Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Länge der vom FTP-Server empfangenen Daten ab.
public:
virtual property long ContentLength { long get(); };
public override long ContentLength { get; }
member this.ContentLength : int64
Public Overrides ReadOnly Property ContentLength As Long
Eigenschaftswert
Ein Int64-Wert, der die Anzahl von Bytes der vom FTP-Server empfangenen Daten enthält.
Beispiele
Im folgenden Codebeispiel wird eine Datei von auf dem angegebenen FTP-Server heruntergeladen. Diese Eigenschaft enthält die Anzahl der Bytes in der heruntergeladenen Datei.
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;
}
Hinweise
Wenn vom FTP-Server ein Antwortdatenstrom zurückgegeben wird, enthält die ContentLength -Eigenschaft die Anzahl der Bytes im Stream. ContentLength gibt −1 zurück, wenn in der Antwort keine Daten zurückgegeben wurden oder wenn der Server keine Informationen zur Inhaltslänge gesendet hat. Der Rückgabewert ist größer oder gleich Null, wenn Daten zurückgegeben wurden oder hätten zurückgegeben werden sollen. Bei Anforderungen, die das ListDirectory Feld verwenden, gibt die ContentLength Eigenschaft beispielsweise immer −1 zurück. Bei Anforderungen, die die UploadFile -Methode verwenden, ist die ContentLength -Eigenschaft immer null. Bei Anforderungen, die die DownloadFile -Methode verwenden, ist die -Eigenschaft größer als 0 (null), wenn die heruntergeladene Datei Daten enthält, und null, wenn sie leer war.
Gibt für Anforderungen, die die GetFileSize -Methode verwenden, ContentLength die Größe der angegebenen Datei auf dem Server zurück.