Webブラウザを作ってみました。現在、ユーザーがファイルをダウンロードしたい場合に、既にダウンロードされたファイルのリストを含む追加のウィンドウが表示される機能を実現しようとしています。ファイルが既に読み込まれている場合は、メッセージが表示されます (単なるアイデアです)。
これまでのところ、メイン フォームでファイルの場所へのリンクを取得し、それを別のフォームに送信しています。
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 ファイルをダウンロードしようとしたときだけでなく、すべての種類のファイルを知るためにこれを変更するにはどうすればよいですか - より良い方法があるかもしれませんリンクを直接使用してファイルをダウンロードしたい場合、「現在、そのためのアクセス許可は必要ありません」というメッセージが表示されます - Web ブラウザのアクセス許可レベルを変更するにはどうすればよいですか
最終的にファイルへのリンクを取得してダウンロードを開始すると、結果としてファイルの名前 (ファイルのサイズ 0 kb) になります-ここで間違っています。