如何从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");
}
}
我通常使用的方法是BackgroundDownloader
,这可能有些过头了,但如果是一个简单的html文件,你可以下载一个字符串-只需调用
string htmlString = await new HttpClient().GetStringAsync(uri);
那么您应该能够用类似htmlDocument.Load(htmlString);
的东西来加载它