c # проверять файлы на сервере с помощью веб-клиента - PullRequest
0 голосов
/ 21 апреля 2009

C # 2008

Я использую метод WebClient DownloadFile.

Я могу скачать нужные файлы. Однако клиент настоял на создании разных папок, которые будут содержать номер версии. Таким образом, имя папки будет примерно таким: 1.0.1, 1.0.2, 1.0.3 и т. Д.

Таким образом, файлы будут содержаться в последней версии в этом случае папка 1.0.3. Тем не менее, как мой веб-клиент может определить, какой из них является последним?

Клиент проверит это при запуске. Если я на самом деле скачать все папки, а затем сравнить. Я не уверен, как еще я могу это сделать.

Большое спасибо за любой совет,

Ответы [ 3 ]

3 голосов
/ 21 апреля 2009

Создайте страницу с номером текущей версии.

string versionNumber = WebClient.DownloadString();
2 голосов
/ 21 апреля 2009

Разрешить просмотр каталогов в IIS и загрузить корневую папку. Затем вы можете найти номер последней версии и создать фактический URL для загрузки. Вот пример (при условии, что ваши каталоги будут иметь вид Major.Minor.Revision):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text.RegularExpressions;

class Program
{
    static void Main(string[] args)
    {
        using (var client = new WebClient())
        {
            var directories = client.DownloadString("http://example.com/root");
            var latestVersion = GetVersions(directories).Max();
            if (latestVersion != null)
            {
                // construct url here for latest version
                client.DownloadFile(...);
            }
        }
    }

    static IEnumerable<Version> GetVersions(string directories)
    {
        var regex = new Regex(@"<a href=""[^""]*/([0-9]+\.[0-9]+\.[0-9])+/"">",
            RegexOptions.IgnoreCase);

        foreach (Match match in regex.Matches(directories))
        {
            var href = match.Groups[1].Value;
            yield return new Version(href);
        }
        yield break;
    }
}
1 голос
/ 21 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...