0

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");
    }

私の質問は次のとおりです。

  1. についてif (e.Url.ToString().EndsWith(".mp3"))- ユーザーが mp3 ファイルをダウンロードしようとしたときだけでなく、すべての種類のファイルを知るためにこれを変更するにはどうすればよいですか - より良い方法があるかもしれません

  2. リンクを直接使用してファイルをダウンロードしたい場合、「現在、そのためのアクセス許可は必要ありません」というメッセージが表示されます - Web ブラウザのアクセス許可レベルを変更するにはどうすればよいですか

  3. 最終的にファイルへのリンクを取得してダウンロードを開始すると、結果としてファイルの名前 (ファイルのサイズ 0 kb) になります-ここで間違っています。

4

1 に答える 1