FtpWebResponse.ContentLength プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
FTP サーバーから受信したデータの長さを取得します。
public:
virtual property long ContentLength { long get(); };
public override long ContentLength { get; }
member this.ContentLength : int64
Public Overrides ReadOnly Property ContentLength As Long
プロパティ値
FTP サーバーから受信したデータのバイト数を格納している Int64 値。
例
次のコード例では、指定した FTP サーバーから ファイルをダウンロードします。 このプロパティには、ダウンロードしたファイルのバイト数が含まれます。
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;
}
注釈
FTP サーバーから応答ストリームが返されると、 ContentLength プロパティにはストリーム内のバイト数が含まれます。 ContentLength は、応答でデータが返されなかった場合、またはサーバーがコンテンツ長情報を送信しなかった場合は -1 を返します。 データが または が返されたはずの場合、戻り値は 0 以上です。 たとえば、 フィールドを使用する要求の ListDirectory 場合、 プロパティは ContentLength 常に -1 を返します。 メソッドを使用する要求の UploadFile 場合、 ContentLength プロパティは常に 0 です。 メソッドを使用 DownloadFile する要求の場合、ダウンロードしたファイルにデータが含まれている場合は プロパティが 0 より大きく、空の場合は 0 になります。
メソッドを使用する要求の GetFileSize 場合は、 ContentLength サーバー上の指定したファイルのサイズを返します。
適用対象
こちらもご覧ください
.NET