我目前正在为一个小型研究项目编写一个 html 解析器。首先下载 html 页面,以便稍后对其进行分析。我正在使用一个异步下载器,它向我抛出一个 System.IO 异常,我不明白。
public void downloadFile(String address)
{
string pfad = @"c:\Greyhound";
if(!Directory.Exists(pfad))
{
Directory.CreateDirectory(pfad);
}
WebClient down = new WebClient();
down.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
down.DownloadFileAsync(new Uri(address), @"c:\Greyhound\page.html");
}
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
MainWindow mainwindow = new MainWindow();
mainwindow.UpdateProgress(e.ProgressPercentage);
}
MainWindows.cs
private void GoButton_Click(object sender, EventArgs e)
{
Downloader down = new Downloader();
down.downloadFile(Convert.ToString(AddressBox.Text));
}
public void UpdateProgress(int percentage)
{
progressBar.Value = percentage;
}
当我单击“开始”时,文件夹被创建并且下载开始并完成!我检查了它。该文件存在并且内容正确。但是当我将鼠标移到进度条上时,会出现等待圆圈。调试器告诉我,它在这里抛出一个 IO 异常:
down.DownloadFileAsync(new Uri(address), @"c:\Greyhound\page.html");
并告诉我:“指定的注册表项不存在” 但路径没有错。顺便说一句,我正在下载“ http://de.selfhtml.org/html/text/anzeige/h1_6.htm ”。