如何使用Ical.Net提取数据?
How to extract data using Ical.Net?
我有一个 ics 文件,我想从中读取数据。我使用 Nuget 下载了 Ical.Net,我正在尝试弄清楚如何使用它。我想要做的就是获得与将我的 ics 文件上传到此网站时获得的信息相同的信息:https://icsconvert.appspot.com/
也就是每个 "event":
- 总结
- 描述
- 开始
- 结束
- 位置
但我不明白如何从文件中获取该信息。这是我目前拥有的:
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 将该数据保存到自定义列表中。
据我所知,您只有一组两个独立的事件,而不是重复发生的事件(如使用 RRULE 定义的那样)。
我想你可能会在 calendar.Events
中找到你需要的东西(我从来没有使用过这个库,只是快速浏览了一下源代码,它看起来像日历 class有一个 "Events" 属性).
我有一个 ics 文件,我想从中读取数据。我使用 Nuget 下载了 Ical.Net,我正在尝试弄清楚如何使用它。我想要做的就是获得与将我的 ics 文件上传到此网站时获得的信息相同的信息:https://icsconvert.appspot.com/
也就是每个 "event":
- 总结
- 描述
- 开始
- 结束
- 位置
但我不明白如何从文件中获取该信息。这是我目前拥有的:
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 将该数据保存到自定义列表中。
据我所知,您只有一组两个独立的事件,而不是重复发生的事件(如使用 RRULE 定义的那样)。
我想你可能会在 calendar.Events
中找到你需要的东西(我从来没有使用过这个库,只是快速浏览了一下源代码,它看起来像日历 class有一个 "Events" 属性).