首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在c#中创建iCal文件

在c#中创建iCal文件
EN

Stack Overflow用户
提问于 2008-08-14 04:07:36
回答 9查看 64.2K关注 0票数 76

我正在寻找一种在c# (asp.net)中生成iCalendar文件(*.ics)的好方法。我找到了一些资源,但缺少的一点是它们对quoted-printable字段的支持-有回车和换行符的字段。

例如,如果description字段编码不正确,则只显示第一行,可能会破坏*.ics文件中的其余信息。

我正在寻找可以生成*.ics文件的现有类和/或可以生成quoted-printable字段的类。

EN

回答 9

Stack Overflow用户

发布于 2008-08-14 04:09:49

我用的是DDay.Ical,它是个好东西。能够打开一个ical文件并将其数据放入一个很好的对象模型中。它说的是测试版,但它对我们来说很有效。

编辑2016年11月

这个库已经被弃用了,但被另一个开发人员作为iCal.NET重新发布。

关于该版本的说明:rianjs.net/2016/07/dday-ical-is-now-ical-net

来源: GitHub:github.com/rianjs/ical.net

票数 73
EN

Stack Overflow用户

发布于 2008-08-20 08:02:16

我找到的最简单的方法就是用microformats标记你的超文本标记语言。

如果你想生成iCalendar文件,那么你可以使用hCalendar microformat,然后添加一个链接,比如“添加到日历”,它指向:

[http://feeds.technorati.com/events/[](http://feeds.technorati.com/events/[) 你的网页的完整网址,包括

然后Technorati页面解析您的页面,提取hCalendar信息并将iCalendar文件发送到客户端。

票数 12
EN

Stack Overflow用户

发布于 2011-01-22 05:15:58

我写了一个填充函数来处理这个问题。它基本上是兼容的--唯一的问题是第一行是74个字符,而不是75个字符( 74个字符是为了处理后续行的空格)……

 Private Function RFC2445TextField(ByVal LongText As String) As String

     LongText = LongText.Replace("\", "\\")
     LongText = LongText.Replace(";", "\;")
     LongText = LongText.Replace(",", "\,")

     Dim sBuilder As New StringBuilder
     Dim charArray() As Char = LongText.ToCharArray

     For i = 1 To charArray.Length
         sBuilder.Append(charArray(i - 1))
         If i Mod 74 = 0 Then sBuilder.Append(vbCrLf & " ")
     Next

     Return sBuilder.ToString

 End Function

我使用它作为我们的ICS提要的摘要和描述。只需在行中添加已经添加了前缀的字段(例如LongText = "SUMMARY:Event Title")。只要你把缓存设置得足够长,这个操作的开销就不会太大。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档