Как проверить наличие файла на сервере по http? - C#

Узнай цену своей работы

Формулировка задачи:

В сети существует веб сервер. Мне нужно проверить существование файла по http или как либо ещё. Файл расположен в папке с разрешениями 755 (chmod755). Файл открывается в браузере по адресу http://site.ru/files/1.txt (без www т.к. openserver) Файл без проблем загружается из браузера или моей программы. (DownloadFile) Этот код работает не верно, файл существует - а результат false
Листинг программы
  1. if (File.Exists("http://site.ru/files/1.txt")) file_exist = true;
  2. if (!File.Exists("http://site.ru/files/1.txt")) file_exist = false;
Я могу попытаться загрузить файл и поймать исключение, тем самым определить - что файла нет. Но это не есть хорошо. Имхо.
Листинг программы
  1. file_exist = true;
  2. try
  3. {
  4. myWebClient.DownloadFile("http://site.ru/files/1.txt");
  5. }
  6. catch (WebException)
  7. {file_exist = false;}
Как корректно проверить наличие файла на сервере по http? PS Адрес сервера может быть в виде http://site.ru/files/1.txt или http://10.0.0.1/files/1.txt

Решение задачи: «Как проверить наличие файла на сервере по http?»

textual
Листинг программы
  1. public static bool FileExists(string url)
  2.         {
  3.             bool result = false;
  4.  
  5.             var request = WebRequest.Create(url);
  6.             request.Timeout = 1200;
  7.             request.Method = "HEAD";// Загружаем только заголовки, файл нам не нужен.
  8.  
  9.             HttpWebResponse response = null;
  10.  
  11.             try
  12.             {
  13.                 response = (HttpWebResponse)request.GetResponse();
  14.                 result = true;
  15.             }
  16.             catch (WebException webException)
  17.             {
  18.             }
  19.             finally
  20.             {
  21.                 if (response != null)
  22.                 {
  23.                     response.Close();
  24.                 }
  25.             }
  26.  
  27.  
  28.             return result;
  29.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы