如何从web下载文件,windows商店应用程序

本文关键字:windows 应用程序 文件 web 下载 | 更新日期: 2023-09-27 17:59:10

我要做的是(http://www.dubstep.net/track/5439)在html中循环查找href。一旦找到一个#,它就会在#之前使用href url。然后从#之前的url下载文件。现在,下面的代码完成了下载之前的所有操作。现在我该如何从url t下载文件?

public async void songsLoad()
    {
        var messageDialog = new MessageDialog("1");
        await messageDialog.ShowAsync();
        //use HAP's HtmlWeb instead of WebClient
        var htmlweb = new HtmlWeb();
        // load HtmlDocument from web URL
        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc = await htmlweb.LoadFromWebAsync("http://www.dubstep.net/track/5439");
        int i = 0;
        List<string> list = new List<string>();
        //use LINQ API to select all `<a>` having `href` attribute
        var links = doc.DocumentNode
                       .DescendantsAndSelf("a")
                       .Where(o => o.GetAttributeValue("href", null) != null);
        foreach (HtmlNode link in links)
        {
            HtmlAttribute href = link.Attributes["href"];
            if (href != null)
            {
                list.Add(href.Value);
                i++;
                if (href.Value == "#")
                {
                    int t = i - 2;
                    Uri test = new Uri(list[t]);
                    start(test);
                }
            }
        }
    }

下面的代码将下载我想要的文件,但这是在控制台应用程序中。。我该如何做到这一点?

 public static void start(Uri t)
    {
        string fileName1 = "t", myStringWebResource = null;
        // Create a new WebClient instance.
        using (WebClient myWebClient = new WebClient())
        {
            myWebClient.DownloadFileCompleted += DownloadCompleted;
            myWebClient.DownloadProgressChanged += myWebClient_DownloadProgressChanged;
            myWebClient.DownloadFileAsync(t, "file.mp3");
        }
    }

如何从web下载文件,windows商店应用程序

我通常使用的方法是BackgroundDownloader,这可能有些过头了,但如果是一个简单的html文件,你可以下载一个字符串-只需调用

string htmlString = await new HttpClient().GetStringAsync(uri);

那么您应该能够用类似htmlDocument.Load(htmlString); 的东西来加载它