我尝试创建一个网络浏览器。目前我尝试实现一个功能,如果用户想要下载某个文件,则会显示一个附加窗口,其中包含已下载文件的列表。如果文件已经加载,则会显示一条消息(只是一个想法)。
到目前为止,我在主表单中获得了指向文件位置的链接并将其发送到另一个表单:
DownLoadFile dlf = new DownLoadFile();
...
WebBrowser wb = new WebBrowser();
wb.Navigating += new WebBrowserNavigatingEventHandler(wb_Navigating);
...
private void wb_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
...
if (e.Url.ToString().EndsWith(".mp3"))
{
dlf.DownloadPath = e.Url;
dlf.Show();
}
}
在新表单中,我尝试使用此链接下载文件:
public Uri DownloadPath { get; set; }
...
private void DownLoadFile_Load(object sender, EventArgs e)
{
string filePath = null;
//get FileName from URL
string[] ArrayForName;
ArrayForName = DownloadPath.ToString().Split('/');
saveFileDialogFile.FileName =
ArrayForName[ArrayForName.Length-1].Replace("%"," ").Trim();
if (saveFileDialogFile.ShowDialog() == DialogResult.OK)
{
WebClient client = new WebClient();
//get Url
Uri url = new Uri(DownloadPath.ToString());
//get place where want to save with default name
filePath = saveFileDialogFile.FileName;
//event for result
client.DownloadFileCompleted +=
new System.ComponentModel.AsyncCompletedEventHandler (client_DownloadFileCompleted);
//download
client.DownloadFileAsync(url, filePath);
}
}
void client_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
MessageBox.Show("Compleated");
}
我的问题是:
关于
if (e.Url.ToString().EndsWith(".mp3"))
-我如何更改它以不仅知道用户何时尝试下载 mp3 文件,还知道所有类型的文件-也许有更好的方法如果我想直接使用某个链接下载文件,我会收到消息“当前您不需要该权限” - 如何更改我的网络浏览器的权限级别
如果我最终获得文件的链接并开始下载它,结果只是文件名(文件大小为 0 kb) - 我错了。