WebClient - 将下载的文件保存到磁盘

时间:2010-07-09 10:07:29

标签: silverlight silverlight-4.0

在Silverlight 4中有没有人试图使用WebClient下载文件(读取或字符串方法,无所谓)并将其保存到磁盘? (使用File或FileStream类,再无关紧要)

我一直试图让这个工作没有运气,由于某种原因文件下载正常,而在内存中它的字符串长度似乎与下载的文件匹配,但当它到达磁盘时几乎两倍大而明显的腐败:(。

要重现只需创建一个SL4 OOB应用程序,使用WebClient下载您选择的MP3并使用FileStream类将其保存到磁盘。如果这适合你,请发一个样品!

1 个答案:

答案 0 :(得分:0)

在OOB高架信任应用程序中尝试此示例:

    private void download_Click(object sender, RoutedEventArgs e)
    {
        WebClient webClient = new WebClient();
        webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
        webClient.OpenReadAsync(new Uri("http://www.yourdomain.com/test.txt", UriKind.Absolute));
    }

    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        SaveFileDialog sfd = new SaveFileDialog();
        if ((bool)sfd.ShowDialog())
        {
            StreamReader sr = new StreamReader(e.Result);
            string str = sr.ReadToEnd();

            StreamWriter sw=new StreamWriter(sfd.OpenFile());
            sw.Write(str);
        }
    }