Как проверить наличие файла на сервере по http? - C#
Формулировка задачи:
В сети существует веб сервер. Мне нужно проверить существование файла по http или как либо ещё.
Файл расположен в папке с разрешениями 755 (chmod755).
Файл открывается в браузере по адресу http://site.ru/files/1.txt (без www т.к. openserver)
Файл без проблем загружается из браузера или моей программы. (DownloadFile)
Этот код работает не верно, файл существует - а результат false
Я могу попытаться загрузить файл и поймать исключение, тем самым определить - что файла нет.
Но это не есть хорошо. Имхо.
Как корректно проверить наличие файла на сервере по http?
PS
Адрес сервера может быть в виде
http://site.ru/files/1.txt или http://10.0.0.1/files/1.txt
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?»
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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д