Как проверить наличие файла на сервере по 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д