FtpWebResponse.ContentLength Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает длину данных, полученных от FTP-сервера.
public:
virtual property long ContentLength { long get(); };
public override long ContentLength { get; }
member this.ContentLength : int64
Public Overrides ReadOnly Property ContentLength As Long
Значение свойства
Значение Int64 , содержащее количество байтов данных, полученных от FTP-сервера.
Примеры
В следующем примере кода загружается файл с указанного FTP-сервера. Это свойство содержит количество байтов в скачанном файле.
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, если данные не были возвращены в ответе или если сервер не отправлял сведения о длине содержимого. Возвращаемое значение больше или равно нулю, если данные были или должны были быть возвращены. Например, для запросов, использующих ListDirectory поле, ContentLength свойство всегда возвращает значение –1. Для запросов, использующих метод, ContentLength свойство всегда равно нулюUploadFile. Для запросов, использующих DownloadFile метод, свойство больше нуля, если скачанный файл содержал данные и равен нулю, если он был пустым.
Для запросов, использующих GetFileSize метод, ContentLength возвращает размер указанного файла на сервере.