0

わかりました、私はここで途方に暮れています。jar ファイルをダウンロードして、それを実行するバッチ ファイルを作成しようとしています。以前にコードでこのファイルをダウンロードできましたが、今では完了イベントが発生します (内部のコードが実行されるためだと思います。申し訳ありませんが、私は C# に慣れていません) すぐにファイルがダウンロードされません。ダウンロードコードだけの新しいボタンを追加しました。ファイルはそこにありましたが、0KBとして表示されました。私の現在のコードでは、Fiddler には何も表示されません。IP アドレスを使用して DNS チェックをスキップし、プロキシを null に設定しています。(これを行うとハングが止まるとどこかで読みました。おそらく、Web プロキシの自動検出に関するものでした。)ダウンロード リンク(必要な場合を除き、ここには表示しません)が本物であることを確認できます。ファイルを Web ブラウザで開くだけでダウンロードできます。ともかく、

        WebClient wc1 = new WebClient();
        wc1.DownloadFileCompleted += new AsyncCompletedEventHandler(wc1_DownloadFileCompleted);
        wc1.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc1_DownloadProgressChanged);

        if (cmboboxVersion.SelectedText == ...)
        {
            stsprgsbar.Style = ProgressBarStyle.Continuous;

            stslblStaus.Text = "Downloading files...";

            wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar");

            FileStream fs = new FileStream(@txtboxFolder.Text + "\\batfile.bat", FileMode.Create, FileAccess.ReadWrite);

            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(...);
            sw.Close();

            fs.Close();


        }
        else if (cmboboxVersion.SelectedText == ...)
        {
            stsprgsbar.Style = ProgressBarStyle.Continuous;

            stslblStaus.Text = "Downloading files...";

            wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar");

            FileStream fs = new FileStream(@txtboxFolder.Text + "\\batfile.bat", FileMode.Create, FileAccess.ReadWrite);

            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(...);
            sw.Close();

            fs.Close();
        }
        else
        {
            stsprgsbar.Style = ProgressBarStyle.Continuous;

            stslblStaus.Text = "Downloading files...";

            wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar");

            FileStream fs = new FileStream(@txtboxFolder.Text + "\\batfile.bat", FileMode.Create, FileAccess.ReadWrite);

            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(...);
            sw.Close();

            fs.Close();
        }
    }

    public void wc1_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        stsprgsbar.Value = e.ProgressPercentage;
    }

    public void wc1_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
    {
        string BatPath = @txtboxFolder.Text + "\\batfile.bat";
        stsprgsbar.Style = ProgressBarStyle.Marquee;
        stslblStaus.Text = "Generating files...";
        ProcessStartInfo pro = new ProcessStartInfo(BatPath);
        //pro.CreateNoWindow = true;
        Process.Start(pro);

    }
4

1 に答える 1

2
wc1.DownloadFileAsync(new Uri(...), @txtboxFolder.Text + "\\jarfile.jar", @"c:\jarfile.jar"););
于 2012-08-17T22:40:47.710 に答える