WebClient DownloadData - System.ArgumentException: путь не имеет юридической формы - PullRequest
0 голосов
/ 29 июня 2018

Я использую следующий код в Winforms, чтобы загрузить текстовый файл с FTP-сайта. Код работает, так как я могу загрузить файл, но я получаю исключение. Мой отладчик генерирует исключение для функции DownloadData.

string versionInfoPathFTP = @"http://www.metoneftp.com/software/BCLoadCorr/version.txt";

private void check_FTP()
{
    string currentVersion;          //this programs version
    string latestVersion;           //newest version read from server

    WebClient wc = new WebClient();
    currentVersion = Application.ProductVersion.Replace(".*", "");

    try
    {
        byte[] newFileData = wc.DownloadData(versionInfoPathFTP);
        string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
        latestVersion = fileString;

        var latest = new Version(latestVersion);
        var current = new Version(currentVersion);

        var result = current.CompareTo(latest);

        if (result < 0)         //new version available
        {
            do_update_FTP(latestVersion);
        }
        else if (result == 0)   //at current latest version
        {
            labelInfo.Text = "Program is up to date! (" + latestVersion.ToString() + ")";
        }
        else                   //future version?
        {
            labelInfo.Text = "Current version is the latest!";
        }

        wc.Dispose();
    }
    catch (Exception ex)
    {
        labelInfo.Text = "No internet connection available!";
        Console.WriteLine(ex.ToString());
    }
}

Вот исключение:

A first chance exception of type 'System.ArgumentException' occurred in mscorlib.dll
System.ArgumentException: The path is not of a legal form.
   at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetFullPathInternal(String path)
   at System.Net.WebClient.GetUri(String path)
   at System.Net.WebClient.DownloadData(String address)
   at MetOneUpdater.UpdateControl.check_FTP() in J:\Products\Software\Automatic Software Updates\MetOneUpdater\MetOneUpdater\MetOneUpdater\UpdateControl.cs:line 65

Может кто-нибудь сказать мне, почему мой URI неправильный? или я что то неправильно форматирую? Я пробовал несколько разных версий URI, но все они выдают исключение. Я пытался избавиться от http://, я пытался избавиться от www, но это, похоже, не решило мою проблему.

...