如何使用Ical.Net提取数据?

时间:2018-12-13 15:18:35

标签: c# .net icalendar

我有一个ics文件,我想从中读取数据。我使用Nuget下载了Ical.Net,并且试图弄清楚如何使用它。我要做的就是获得与将ics文件上传到以下网站时的信息:https://icsconvert.appspot.com/

对于每个“事件”,哪个:

  • 摘要
  • 说明
  • 开始
  • 结束
  • 位置

但是我不明白如何从文件中获取该信息。这是我到目前为止的内容:

string filepath = @"C:\My\file\path\myIcs.ics";
System.IO.StreamReader file = new System.IO.StreamReader(filepath);
string content = file.ReadToEnd();
file.Close();

Ical.Net.Calendar calendar = Ical.Net.Calendar.Load(content);

foreach (var c in calendar.RecurringItems)
{
    // 1. Do something!
    // 2. ????
    // 3. Profit!
}

这是我从here获得的示例文件:

BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
SUMMARY:Access-A-Ride Pickup
DTSTART;TZID=America/New_York:20130802T103400
DTEND;TZID=America/New_York:20130802T110400
LOCATION:1000 Broadway Ave.\, Brooklyn
DESCRIPTION: Access-A-Ride trip to 900 Jay St.\, Brooklyn
STATUS:CONFIRMED
SEQUENCE:3
BEGIN:VALARM
TRIGGER:-PT10M
DESCRIPTION:Pickup Reminder
ACTION:DISPLAY
END:VALARM
END:VEVENT
BEGIN:VEVENT
SUMMARY:Access-A-Ride Pickup
DTSTART;TZID=America/New_York:20130802T200000
DTEND;TZID=America/New_York:20130802T203000
LOCATION:900 Jay St.\, Brooklyn
DESCRIPTION: Access-A-Ride trip to 1000 Broadway Ave.\, Brooklyn
STATUS:CONFIRMED
SEQUENCE:3
BEGIN:VALARM
TRIGGER:-PT10M
DESCRIPTION:Pickup Reminder
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR

如何获取所需数据?我想使用foreach将该数据保存到自定义列表中。

1 个答案:

答案 0 :(得分:1)

据我所知,那里只有一组两个独立的事件,没有重复发生的事件(如RRULE所定义)。

我认为您可能会在calendar.Events中找到所需的内容(我从未使用过此库,只是快速查看了源代码,并且看起来日历类具有“ Events”属性)。