在Silverlight中下载电子邮件附件

时间:2012-06-06 08:13:25

标签: c# file-io silverlight-4.0

我正在使用VS2010,C#来开发基于Web的(浏览器内)Silverlight 4应用程序,我正在使用IMAP阅读电子邮件(目前是gmail),我在Silverlight中使用WCF来访问gmail数据。一切都很顺利但我在下载附件时遇到问题,我可以在字节数组中获取电子邮件附件,使用Response.Stream或File.WriteAllBytes(在ASP.NET页面中)保存这些字节没有问题。但是当我想将它们保存在我的SL应用程序中时,我有两个问题:似乎我不能在我的WCF中使用Response,而且File.WriteAllBytes也给我这个错误:不允许文件操作,访问被拒绝myfilename。我可以选择在SL应用程序中下载附件吗?我应该将我的文件数据作为byte []返回到SL应用程序,还是我应该将它们直接保存在WCF中?

我应该使用哪种方法?响应?文件?或其他,谢谢

1 个答案:

答案 0 :(得分:3)

这是您在SL4中保存byte[]文件的方式:

    private void SaveFile(byte[] bytes)
    {
        SaveFileDialog saveDialog = new SaveFileDialog();
        saveDialog.DefaultExt = ".stuff";
        saveDialog.Filter = "Funky Stuff File|*.stuff|All Files|*.*";
        saveDialog.FilterIndex = 1;
        bool? dialogResult = saveDialog.ShowDialog();
        if (dialogResult == true)
        {
            using (Stream ms = (Stream)saveDialog.OpenFile())
            {
                ms.Write(bytes, 0, bytes.Length);
                ms.Close();
            }
        }
    }