ASP.NET/C# - определить размер файла с другого сервера?

Я пытаюсь найти размер файла на сервере. Следующий код, который я получил от этого парня, выполняет это для вашего собственного сервера:

string MyFile = "~/photos/mymug.gif";

FileInfo finfo = new FileInfo(Server.MapPath(MyFile));
long FileInBytes = finfo.Length;
long FileInKB = finfo.Length / 1024;

Response.Write("File Size: " + FileInBytes.ToString() + 
  " bytes (" + FileInKB.ToString() + " KB)");

Оно работает. Тем не менее, я хочу найти размер файла, например:

string MyFile = "http://www.google.com/intl/en_ALL/images/logo.gif";

FileInfo finfo = new FileInfo(MyFile);

Тогда я получаю досадную ошибку, говоря URI formats are not supported.

Как найти размер файла логотипа Google в ASP.NET?

10.12.2008 19:08:08
2 ОТВЕТА
РЕШЕНИЕ

Вы можете использовать WebRequestкласс для выдачи HTTP-запроса на сервер и чтения Content-Lengthзаголовка (возможно, вы можете использовать HTTP- HEADметод для его выполнения). Однако не все веб-серверы отвечают Content-Lengthзаголовком. В этих случаях вы должны получить все данные, чтобы получить размер.

5
10.12.2008 19:15:08
Я попробовал ваш метод, но получил в WebRequestответ весь файл
user586399 28.07.2012 01:38:00
@Desolator: Вы уверены, что веб-сервер был в здравом уме?
Mehrdad Afshari 28.07.2012 03:24:26
Я думаю, что сервер работает, вероятно. Этот метод работает просто отлично: stackoverflow.com/a/11697647/586399
user586399 28.07.2012 09:09:30
@ Desolator этот метод не только получает заголовки. Он получит столько пакетов, сколько вы сможете получить, прежде чем отключить соединение, поэтому он сильно отличается от идеального запроса HEAD. Я думаю, что сервер не реализовал метод HEAD правильно.
Mehrdad Afshari 28.07.2012 16:42:33

Чтобы получить это значение, вы должны сначала загрузить файл локально, а затем использовать стандартные методы, чтобы получить его размер.

0
10.12.2008 19:10:50
Dang. Это единственный способ сделать это?
MattSayar 10.12.2008 19:15:05
Mehrdad предложил единственную другую альтернативу, о которой я знаю, но, как он упомянул, она немного отрывочна в поддержке
Mitchel Sellers 10.12.2008 19:18:31
так, если файл был 1 ГБ, ожидаете ли вы его скачать?
SolidSnake 24.09.2011 10:07:03
К сожалению, это действительно единственный путь, если ответ Мехрдада не сработает.
Mitchel Sellers 2.10.2011 16:08:37