電子書籍の厳選無料作品が豊富!

Microsoft Outlookのデータファイル(.PSTファイル)の解析を行うアプリをC#で作成したいと考えています。

.PSTファイルを扱うために、MAPIおよびOOMのAPIを使用する予定です。

そこでまず、解析対象の.PSTファイルですが、Outlookのデフォルトフォルダに格納されている.PSTファイルではなく、任意のフォルダに格納されている.PSTファイルを指定したいのですが、その方法がわかりません。

ご存じの方、ご教授をよろしくお願いします。

A 回答 (2件)

Outlook Object Model では、PST を新規に作成して追加するには AddStoreEx メソッドを使います。


たとえば、C:\test\test.pst という PST ファイルを作成して現在の MAPI セッションに追加する場合は、以下のようにします。
Application.Session.AddStoreEx "C:\test\test.pst", olStoreDefault
AddStoreEx の詳細については http://msdn.microsoft.com/ja-jp/library/cc381707 … をご覧ください。

MAPI を使う場合には、PST のサービスを追加して、そのサービスの PR_PST_PATH プロパティで PST のパスを指定することになると思いますが、そもそも C# では MAPI は使えないと思います。
    • good
    • 0

>任意のフォルダに格納されている.PSTファイルを指定したいのですが、その方法がわかりません。



質問の意図が今一つ理解できませんし、はっきり言って全く自信がありませんが、他の回答者の回答が無いようなので・・・。(残念ながら、ご質問のような質問に回答可能なレベルの回答者がもうこのサイトにはほとんどいません。)

ご質問の意味が、ユーザーが、".pst"ファイルの保存フォルダをデフォルトのフォルダから任意のフォルダに変更している場合の、そのフォルダの情報がどこに記録されているかということでしたら、レジストリの

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Microsoft Outlook Internet Settings\ca1110066c57ad43a5582ab81469dc45
001e6700  REG_SZ  X:\・・・・\outlook.pst

ではないかと思います。
ただし、上記のレジストリキーはMicrosoft Outlook 2000(OS:Windows 2000/XP)の場合です。他のバージョンのMicrosoft Outlookでも同じかどうかは分かりません。もしかしたら、レジストリキーの最後の"ca1110066c57ad43a5582ab81469dc45"の部分が異なっているかもしれません。(私は、E:ドライブにOutlook 2000の保存フォルダを変更していますが、レジストリ内を検索してヒットするのが、唯一上記のキーと値です。)

下記参考URLのOutlook 2003/2007の移行されるレジストリデータとして、

HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\*

というキーがあり、この"Profiles"キー下に複数の英数字の羅列された(上記の"ca1110066c57ad43a5582ab81469dc45"等)キーが存在し、"outlook.pst"を始めとする".pst"ファイルの保存フォルダ+ファイル名が記録されています。

『Microsoft TechNet:Office 2010 内のユーザー データのレジストリ キーを移行する』
http://technet.microsoft.com/ja-jp/library/ee624 …

参考URL:http://technet.microsoft.com/ja-jp/library/ee624 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!