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

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

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

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

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

textual
Листинг программы
public static bool FileExists(string url)
        {
            bool result = false;
 
            var request = WebRequest.Create(url);
            request.Timeout = 1200;
            request.Method = "HEAD";// Загружаем только заголовки, файл нам не нужен.
 
            HttpWebResponse response = null;
 
            try
            {
                response = (HttpWebResponse)request.GetResponse();
                result = true;
            }
            catch (WebException webException)
            {
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                }
            }
 
 
            return result;
        }

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


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

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

6   голосов , оценка 4 из 5
Похожие ответы