Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260

Проверка файла на сервере

12.11.2016, 14:17. Показов 4040. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно проверить есть ли какой-либо файл на сервере напримере: dropbox
И как сделать проверку на нескольких серверах?!
Если с сервера обычно я качаю так:

C#
1
2
3
4
5
6
static WebClient skachka = new WebClient();
        public static void LoadFile(string Link, string my)
        {
            try { skachka .DownloadFile(Link, my); }
            catch { }
        }
И уже вызываю сам процесс скачивания:
C#
1
2
static string LinkFile = "https://www.dropbox/s/hkwin/file.exe";
LoadFile(LinkFile, MyFile);
Как мне сделать проверку что файл существует на сервере?
Если же на 1 сервере его нету, то сделать проверку на 2-ом!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2016, 14:17
Ответы с готовыми решениями:

Проверка наличия файла на сервере
Подскажите, можно ли как-то проверить существует ли файл на сервере? (БЕЗ СКАЧИВАНИЯ файла) Пример исходных данных: ...

Проверка текстового файла на сервере
Здравствуйте! Подскажите, пожалуйста, как реализовать проверку txt файла на сервере. К примеру: я ввожу в textbox: "1234" и...

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

15
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
12.11.2016, 14:25
chaleureux, ну, если сервис не предоставляет соответствующее API, то, как вариант, можно тупо попробовать качнуть. Если сервер скажет "404", значит файла нет
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
12.11.2016, 16:17  [ТС]
Вроде нашёл решение буду пробовать)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool CheckURL(string url)
        {
            WebRequest request = WebRequest.Create(url);
            request.Method = "HEAD";
            
            try
            {
                using (var response = request.GetResponse())
                    return ((HttpWebResponse)response).StatusCode == HttpStatusCode.OK;
            }catch(WebException ex)
            {
                return false;   
            }
        }
Добавлено через 1 час 27 минут
В принципе всё нормально, но не понятно как сделать проверку файла на нескольких серверах?!

Сам код проверки:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static bool CheckFileServer(string Url)
    {
        WebRequest request = WebRequest.Create(Url);
        request.Method = "HEAD";
 
        try
        {
            using (var response = request.GetResponse())
                return ((HttpWebResponse)response).StatusCode == HttpStatusCode.OK;
        }
        catch (WebException)
        {
            return false;
        }
    }
Ссылки на программу + Dll:

C#
1
2
static string OneLink = "https://www.dropbox.com/s/fvicysouwia/FormSlide.exe?dl=1";
static string TwoLink = "https://www.dropbox.com/s/3dq9tk6/Focus.dll?dl=1";
Запасная ссылка если файла нету на сервере 1(TwoLink):

C#
1
static string ThreeLink= "https://www.dropbox.com/s/fgrehr342sd3/Focus.dll?dl=1";
Сама функция проверки:

C#
1
2
3
4
5
if (CheckFileServer(OneLink))
{
   LoadFile(TwoLink, Dll); // загрузка .dll
   LoadFile(OneLink, args2); // загрузка .exe
}
Как лучше сделать проверку файлов на сервере?

Если на сервере 1(TwoLink) файла не обнаружено (без Exception)

То проверить на Запасном сервере 2(ThreeLink) - если файл есть качаем!

Добавлено через 20 минут
Up.
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
12.11.2016, 16:18
chaleureux, что "Up"? Умеешь на одном проверять сервере, значит умеешь и на нескольких. Проверяй последовательно.
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
12.11.2016, 16:23  [ТС]
Usaga, . Я просто думал что может кто лучше сделать проверку каждого файла, а если много ссылок на проверку
Это мне нужно постоянно if else впихивать?)
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
12.11.2016, 16:28
chaleureux, запиши все ссылки в массив и прогони проверку в цикле.
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
12.11.2016, 16:39  [ТС]
Usaga, Через List<string> ? или как лучше? было бы неплохо если бы Вы пример дали
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
12.11.2016, 17:59
chaleureux, можно List<T> использовать.
0
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
12.11.2016, 18:21  [ТС]
Usaga, А можно с моим примером показать?!
0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
12.11.2016, 18:25
chaleureux, гугли "перебор массива C#"
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
12.11.2016, 18:52
Цитата Сообщение от Usaga Посмотреть сообщение
Если сервер скажет "404", значит файла нет
забываешь про модификаторы доступа.. можно перекрывать доступ к файлу.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
12.11.2016, 19:10
Цитата Сообщение от chaleureux Посмотреть сообщение
было бы неплохо если бы Вы пример дали
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
 
namespace ConsoleApplication4 {
    class Program {
        static void Main(string[] args) {
            string[] urls = { "http://yandex.rum", "http://google.com", "http://mail.ru", "http://rambler.ru" };
            Console.WriteLine(IsLinksCorrected(urls));
            Console.ReadLine();
        }
        static bool IsLinksCorrected(string[] urls) {
            var result = urls.AsParallel().Select(url => {
                HttpStatusCode code;
                try {
                    WebRequest req = WebRequest.Create(url);
                    code = ((HttpWebResponse)req.GetResponse()).StatusCode;
                }
                catch {
                    code = HttpStatusCode.NotFound;
                }
                return code;
            });
            return result.All(r => r == HttpStatusCode.OK);
        }
    }
}
1
 Аватар для chaleureux
25 / 28 / 19
Регистрация: 24.12.2014
Сообщений: 1,260
12.11.2016, 19:19  [ТС]
Я мало работал и много чего не впитываю, попробовал сделать так: прошу критики!
Я понял что я не так сделать всё?! (тапки не бросайте)
C#
1
2
3
4
5
6
7
8
9
10
11
List<string> sf = new List<string>();
                    sf.Add(OneLink);
                    sf.Add(TwoLink);
                    foreach (string str in sf)
                    {
                        if (CheckFileServer(str))
                        {
                            LoadFile(TwoLink, Dll);
                            LoadFile(OneLink, args2);
                        }
                    }
0
 Аватар для iDReeM
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
12.11.2016, 19:24
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
string[] url_List = 
{
   OneLink,
   TwoLink
};
 
for(int i = 0; i <url_List.Length; i++)
{
    if (!CheckFileServer(url_List[i]))
        continue;
    else
    {
        LoadFile(url_List[i], Dll);
        LoadFile(url_List[i], args2);
        break;
    }
}
1
12.11.2016, 19:58  [ТС]

Не по теме:

Хочу поинтересоваться, если на сервере нету dll'ки, а каким-то чудом программа скачивает её(хотя на сервере её нету) Это глюк сервера?
Ни на 1 сервере нету нужной dll ( сначало залил, для проверки), затем удалил, а они скачиваются))

0
Эксперт .NET
 Аватар для Usaga
14130 / 9350 / 1350
Регистрация: 21.01.2016
Сообщений: 35,148
13.11.2016, 05:28

Не по теме:

chaleureux, проверяешь на прочность наши телепатические способности? :stop:



Добавлено через 2 минуты
Используй Fiddler (гугл в помощь, что это и как этим пользоваться), чтобы посмотреть что и откуда качает твоя непонятная программка.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2016, 05:28
Помогаю со студенческими работами здесь

VB проверка файла на сервере
Уважаемые форумчане! Подскажите пожалуйста, возможно ли реализовать такое: Например на сервере лежит файл 123.txt ...

Проверка существования файла на сервере (сайте)
Есть сайт, например сайт.ru в корневом разделе сайта расположен файл test.txt Полный путь получается http://сайт.ru/test.txt Вопрос: ...

Проверка наличия файла на сервере локальной сети.
Локальная сеть. Необходимо проверить наличие файла на сервере. Если запустить штатным способом, и при этом сервер допустим недоступен (не...

Загрузка файлов на сервере, проверка типа файла (javascript vs php)
Приветствую есть форма для загрузки картинки задача: надо дапустить толко .gif картинки. как правило, проверка происходит на...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru