3

Web アプリで Outlook 2010 の予定表の内容を利用しようとしています。そのために、IIS 7.5/Windows 2008 R2 マシンで WebDAV 対応の Web サイトをセットアップしました。Outlook 2010 から、セットアップした Web サイトに予定表を公開したところ、Web サイト フォルダーに新しい .ics ファイルが作成されました。

ここで、ファイルの内容を読み取り/解析するために、そのファイルを VS 2012 マシン (Outlook がインストールされているマシンと同じマシン) にコピーしました。この例を使用してファイルを解析しました: http://msdn.microsoft.com/en-us/library/office/bb644609%28v=office.12%29.aspx

例でこのコードを使用すると (少し変更されています)、2 つの例外が発生します。1 つは OpenSharedItem で操作が失敗したことを示し、もう 1 つは OpenSharedFolder でファイルが有効なインターネット カレンダー ファイルではないことを示します。

string fileName = "filename.ics";

if (!File.Exists(fileName))
    Console.WriteLine("File Does NOT Exist");
else
    Console.WriteLine("File Exists");

// First try to open the icalendar file as an appointment 
// (not a calendar folder).
object item = null;
try
{
    Application a = new Application();

    item = a.Session.OpenSharedItem(fileName);
    Console.WriteLine("open shared item");
}
catch(System.Exception e)//gets thrown
{
    Console.WriteLine("Open shared item failed");
    Console.WriteLine(e.Message + e.StackTrace);
}

if (item != null)
{
    Console.WriteLine("item not null");

    // Display the item
    OutlookItem olItem = new OutlookItem(item);
    olItem.Display();
    return;
}

// If unsucessful in opening it as an item, 
// try opening it as a folder
Outlook.Folder importedFolder = null;
try
{
    Application a = new Application();              
    importedFolder = a.Session.OpenSharedFolder(fileName, Type.Missing, Type.Missing, Type.Missing) as Outlook.Folder;
    Console.WriteLine("open shared folder");
}
catch (System.Exception e)//gets thrown
{
    Console.WriteLine("Open shared folder failed");
    Console.WriteLine(e.Message + e.StackTrace);
}

// If sucessful, open the folder in a new explorer window
if (importedFolder != null)
{
    //never reached
}

ファイル名.ics

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-CALSTART:20121009T150000Z
X-CALEND:20130102T213000Z
X-CLIPSTART:20121006T050000Z
X-CLIPEND:20130105T060000Z
X-WR-RELCALID:{0000002E-01FB-5DE5-BFA0-7A2B5F98AC2C}
X-WR-CALNAME:Doe\, John
X-WR-CALDESC:
X-PRIMARY-CALENDAR:TRUE
X-PUBLISHED-TTL:PT60M
X-OWNER;CN="Doe, John":mailto:jdoe@mycompany.com
X-MS-OLK-WKHRSTART;TZID="Central Standard Time":080000
X-MS-OLK-WKHREND;TZID="Central Standard Time":170000
X-MS-OLK-WKHRDAYS:MO,TU,WE,TH,FR
BEGIN:VTIMEZONE
TZID:Central Standard Time
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0500
TZOFFSETTO:-0600
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0600
TZOFFSETTO:-0500
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTEND:20121009T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121009T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:FVI3qgvnnECOutT6Cpus2A==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121009T200000Z
DTSTAMP:20121105T230030Z
DTSTART:20121009T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:1pvycFq1HUqwrcPUvvSd9Q==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121010T203000Z
DTSTAMP:20121105T230030Z
DTSTART:20121010T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:GtLjxE2g1EqBQdtFDOUe7w==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121011T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121011T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:W4b2WmjZ6Uu9SEKaObx6dw==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121011T210000Z
DTSTAMP:20121105T230030Z
DTSTART:20121011T193000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:nU45vLjlkU23vbmmS5ANPw==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121015T200000Z
DTSTAMP:20121105T230030Z
DTSTART:20121015T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:qbw5o6Y1HUugYh2RWxeDHw==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121016T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121016T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:V10iWliy10yKQMl/UaLQlQ==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121017T203000Z
DTSTAMP:20121105T230030Z
DTSTART:20121017T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:U3ycfGWWwkOt12msYYEHLw==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121018T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121018T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:U8psiL5Roke/iwHrSSbr8g==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121018T210000Z
DTSTAMP:20121105T230030Z
DTSTART:20121018T193000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:mjasBcST7k+jDlXJw/1MQA==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121022T200000Z
DTSTAMP:20121105T230030Z
DTSTART:20121022T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:vsYg7aai30GmYQZciLrkuA==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121023T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121023T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:y+3dporUvkq8uqjnnBGm3Q==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121023T200000Z
DTSTAMP:20121105T230030Z
DTSTART:20121023T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:gjP1oxozi06EFNPsIvcb7A==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121024T203000Z
DTSTAMP:20121105T230030Z
DTSTART:20121024T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:OD5UhYsBB0+e/lFxl5ubzg==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121025T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121025T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:iuN26STSskaIFUQeSPjfBw==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121025T210000Z
DTSTAMP:20121105T230030Z
DTSTART:20121025T193000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:jnNtwU6AWkGGBpG6wOZMmA==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121026T150000Z
DTSTAMP:20121105T230030Z
DTSTART:20121026T140000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:SVZHk/EV0Eev8zr1p3bVrg==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121029T200000Z
DTSTAMP:20121105T230030Z
DTSTART:20121029T180000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:4+5yxy98ak+fgwy6zrbNRg==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121030T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121030T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:jub5aDFivEGbqhBJwc3Vpg==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121030T200000Z
DTSTAMP:20121105T230030Z
DTSTART:20121030T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:9il1KMwbekKQA4kfjhvljg==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121031T210000Z
DTSTAMP:20121105T230030Z
DTSTART:20121031T190000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:PAmC9pXGFEeP8uEVZ2e8GQ==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121101T160000Z
DTSTAMP:20121105T230030Z
DTSTART:20121101T150000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:mzHkS2g/4kiLE9EF1qHP3Q==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121101T210000Z
DTSTAMP:20121105T230030Z
DTSTART:20121101T193000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:UGc1w8m2iEW+BHUxCyd9xg==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121106T170000Z
DTSTAMP:20121105T230030Z
DTSTART:20121106T160000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:wi/8np16uESdCzI471NFZA==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121107T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121107T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:Mnf3wC1+CE6qW98clLFycQ==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121108T170000Z
DTSTAMP:20121105T230030Z
DTSTART:20121108T160000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:1fEZ3YnxEk2P4BTzw8dcNw==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121108T220000Z
DTSTAMP:20121105T230030Z
DTSTART:20121108T203000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:9KlqqMOAPEi4qFSOhTxImQ==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121113T170000Z
DTSTAMP:20121105T230030Z
DTSTART:20121113T160000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Tentative
TRANSP:OPAQUE
UID:VB9LJPflDkm24bxG0TBX/Q==
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
END:VEVENT
BEGIN:VEVENT
DTEND:20121114T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121114T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:3bIwxwBzEEiNFhFpaQ72tA==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121115T170000Z
DTSTAMP:20121105T230030Z
DTSTART:20121115T160000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:Zm2nzgnCE0yio988QdmWOg==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121121T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121121T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:kX2JXLt0YkW/9jEvIM/uGw==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121128T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121128T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:8Z2xP1+j2UyvsXtqk9/x3w==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121129T220000Z
DTSTAMP:20121105T230030Z
DTSTART:20121129T203000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:VaD+s7gJC0qi/m/ZaglYVA==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121205T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121205T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:bq09F62hpkGFaaJnci9rwQ==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121206T220000Z
DTSTAMP:20121105T230030Z
DTSTART:20121206T203000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:gdb/P27fOkOgdnPlsdgQ6g==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121212T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121212T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:zcV/ETzsK0CJ3Luyc/1pZQ==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121213T220000Z
DTSTAMP:20121105T230030Z
DTSTART:20121213T203000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:bSdV5Ln7Ok+GHu1bIrm9yg==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121219T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121219T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:7rNe2ZxZp0WvkPf5C0IsNA==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20121226T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20121226T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:2sgn16IkbUycYLaDZFD4Ug==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
BEGIN:VEVENT
DTEND:20130102T213000Z
DTSTAMP:20121105T230030Z
DTSTART:20130102T200000Z
SEQUENCE:0
SUMMARY;LANGUAGE=en-us:Busy
TRANSP:OPAQUE
UID:91urQDvoIkqcLS8xpDscXg==
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
END:VEVENT
END:VCALENDAR
4

2 に答える 2

1

ファイルのフルパスを試すことはできますか?

例:

string fileName = "c:\temp\filename.ics";

編集:

OpenSharedItemを読む と、次のことがわかります。

このメソッドは、 iCalendar カレンダー(.ics) ファイルをサポートしていません。iCalendar カレンダー ファイルを開くには、NameSpace オブジェクトの OpenSharedFolder メソッドを使用できます。

しかし、opensharedfolderで次のことがわかりました:

このメソッドは、 iCalendar 予定(.ics) ファイルをサポートしていません。iCalendar の予定ファイルを開くには、NameSpace オブジェクトの OpenSharedItem メソッドを使用できます。

最初の質問は、これは iCalendar カレンダーですか、それとも iCalendar の予定ですか? これに答えると、OpenSharedItem または OpenSharedFolder を使用する必要があるかどうかがわかります。

于 2012-11-09T15:33:22.233 に答える
1

OpenSharedItem は、1 つの VEVENT を持つ ICS ファイルに対してのみ機能します。ICS ファイルに 1 つの VEVENT が含まれ、他の VEVENTS が最初の VEVENT の例外である場合は、ヘッダー X-MS-OLK-FORCEINSPECTOROPEN:TRUE を ICS ファイルに追加します。次に例を示します。

BEGIN:VCALENDAR
VERSION:2.0
X-MS-OLK-FORCEINSPECTOROPEN:TRUE

これで、OpenSharedItem は問題なく ics ファイルをロードします。

于 2014-02-14T13:16:21.493 に答える