检测iCal文件中的更改

时间:2012-03-08 12:47:30

标签: icalendar rfc2445 rfc5545

我正在编写一个小型桌面应用程序,可插入Google日历(或其他iCal支持的服务)并显示活动提醒。它会经常自动重新下载iCal文件。如果文件校验和发生了变化,我会抛出当前的约会缓存并重新解析日历。

问题是,这不适用于Google日历文件。经过进一步检查后,我注意到,每次重新下载与某个日历关联的iCal文件时,所有事件的DTSTAMP: property都会更改。因此,标准校验和可能不是这里的方法。我正在考虑两个主要的解决方案。

  • 根据原始文件计算校验和,并抛出DTSTAMP:行。 (脏)
  • 实现完整的日历差异算法,该算法可以检测日历的哪些部分是新的,已被抛出的部分,哪些部分已经更改,等等。(昂贵)

我不知道iCal格式是否还有其他我尚未发现的怪癖,所以我不知道方法1是否能解决我的问题。有限的测试似乎表明它确实如此。另一方面,就CPU功率而言,方法2似乎不必要地昂贵。

你会建议什么?

1 个答案:

答案 0 :(得分:1)

不确定google日历是否遵循rfc5545的100%,但应该有一个序列号“定义修订序列中日历组件的修订序列号。”