2014-10-08 3 views
0

나는 일정 관리를하고있다. 일정 약속을 내 보내야합니다. 아래 코드에서 temp 폴더에 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

+0

죄송합니다. 해당 파일의 데이터가 오지 않았습니다 ... 파일 크기는 0 바이트입니다. :-( – user2877778

+0

물론 소비자에게 보내기 전에 응답을 지울 필요가 없습니다 – Sohaty

관련 문제