在Silverlight 4中有没有人试图使用WebClient下载文件(读取或字符串方法,无所谓)并将其保存到磁盘? (使用File或FileStream类,再无关紧要)
我一直试图让这个工作没有运气,由于某种原因文件下载正常,而在内存中它的字符串长度似乎与下载的文件匹配,但当它到达磁盘时几乎两倍大而明显的腐败:(。
要重现只需创建一个SL4 OOB应用程序,使用WebClient下载您选择的MP3并使用FileStream类将其保存到磁盘。如果这适合你,请发一个样品!
答案 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);
}
}