2009-11-12 10 views
7

मैं एक ऐप लिख रहा हूं जो Outlook डेटा में हेरफेर करेगा। मैं पहले उस डेटा का बैकअप बनाना चाहता हूं और उम्मीद कर रहा हूं कि मैं सिर्फ संपर्क/कैलेंडर आइटम आदि के माध्यम से लूप कर सकता हूं और उन्हें पीएसटी फ़ाइल में लिख सकता हूं।मैं .Net का उपयोग कर Outlook PST फ़ाइल कैसे बना सकता हूं?

मैं .NET का उपयोग कर पीएसटी में 1 या कई आउटलुक फ़ोल्डर्स की सामग्री कैसे लिख सकता हूं? [vb या C# कोई फर्क नहीं पड़ता]

उत्तर

10

मैं इस कोड को इंटरनेट और एमएसडीएन दस्तावेज़ों के विभिन्न नमूनों से एक साथ टुकड़ा करने में सक्षम था। यह आपको एक उच्च स्तर के फ़ोल्डर का चयन करने की अनुमति देगा और नीचे सभी फ़ोल्डर्स बैकअप करेगा। मेरे मामले में मैं वास्तव में मेल फ़ोल्डर्स नहीं चाहता था इसलिए मैंने उन्हें बाहर कर दिया।

 Const BACKUP_PST_PATH As String = "C:\backup.pst"  

     Dim oFolder As Outlook.MAPIFolder = Nothing 
     Dim oMailbox As Outlook.MAPIFolder = Nothing 

     Dim app As New Outlook.Application() 
     Dim ns As Outlook.NameSpace = app.GetNamespace("MAPI") 
     Try 
      //if the file doesn not exist, outlook will create it 
      ns.AddStore(BACKUP_PST_PATH) 
      oFolder = ns.Session.Folders.GetLast() 
      oMailbox = ns.PickFolder() 

     For Each f As Outlook.Folder In oMailbox.Folders 
      If f.DefaultItemType <> Microsoft.Office.Interop.Outlook.OlItemType.olMailItem And f.FolderPath <> oFolder.FolderPath Then 
       f.CopyTo(oFolder) 
      End If 
     Next 

     ns.RemoveStore(oFolder) 

     Catch ex As Exception 
      ns.RemoveStore(oFolder) 
      IO.File.Delete(BACKUP_PST_PATH) 
      Throw ex 
     End Try 
+0

um; "pst" ऑब्जेक्ट कहां घोषित और प्रारंभ किया गया है? – akavel

+0

ns.AddStore (BACKUP_PST_PATH) - यदि कोई उस स्थान पर मौजूद नहीं है तो यह एक पीएसटी बनाएगा - ns.Session.Folders.GetLast() तब आपको उस पीएसटी/फ़ोल्डर – brendan

+0

पर एक संभाल लेगा ताकि आपके कोड में "pst" चर (2 स्थानों में) एक टाइपो "ओफोल्डर" होना है? – akavel

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^