2014-10-08 94 views
0

我正在进行计划控制。我需要导出计划约会。 从下面的代码中我创建了Test.ics文件在临时文件夹中,然后复制到新的位置。如何使用保存对话框创建和保存ics文件?

如何在不保存临时文件夹的情况下保存文件。 是否可以将文件存储在缓冲区或任何临时对象中,而不是将其存储在临时文件夹中?

请找我下面的代码片段...

string fileName = "Test.ics"; 
InternetCalendaring.ICSBuilder icsbBuilder = new InternetCalendaring.ICSBuilder(vecVEvents); 
sRes = icsbBuilder.ICSBuildProcess(); 
string FilePath = System.IO.Path.GetTempPath() + fileName; 
System.IO.File.WriteAllText(FilePath, sRes); 
FileStream MyFileStream = new FileStream(FilePath, FileMode.Open); 
long FileSize; 
FileSize = MyFileStream.Length; 
byte[] Buffer = new byte[(int)FileSize]; 
MyFileStream.Read(Buffer, 0, (int)MyFileStream.Length); 
MyFileStream.Close(); 
System.Web.HttpContext.Current.Response.AddHeader("content-type", "text/Calendar"); 
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); 
System.Web.HttpContext.Current.Response.BinaryWrite(Buffer); 
System.Web.HttpContext.Current.Response.Clear(); 
HttpContext.Current.Response.End(); 

在此先感谢...

回答

0
string fileName = "Test.ics"; 
InternetCalendaring.ICSBuilder icsbBuilder = new InternetCalendaring.ICSBuilder(vecVEvents); 
sRes = icsbBuilder.ICSBuildProcess(); 

byte[] Buffer = Encoding.Unicode.GetBytes(sRes); 

System.Web.HttpContext.Current.Response.AddHeader("content-type", "text/Calendar"); 
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName); 
System.Web.HttpContext.Current.Response.BinaryWrite(Buffer); 
//System.Web.HttpContext.Current.Response.Clear(); 
HttpContext.Current.Response.End(); 
+0

哇。得到它..伟大的工作..感谢在吨 – user2877778 2014-10-08 12:20:02

+0

嗨,对不起,该文件中的数据不来...文件大小为0字节.. :-( – user2877778 2014-10-08 12:49:06

+0

当然,我们不需要清除响应,然后发送给消费者 – Sohaty 2014-10-08 12:58:41