J'ai été en mesure d'assembler ce code à partir d'une variété d'échantillons sur Internet et les documents MSDN. Cela vous permettra de choisir un dossier de haut niveau de perspectives et sauvegardera tous les dossiers dessous. Dans mon cas, je ne voulais pas de dossiers de courrier, donc je les exclu.
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
um; où est l'objet "pst" déclaré et initialisé? – akavel
ns.AddStore (BACKUP_PST_PATH) - cela créera un fichier PST s'il n'existe pas à cet emplacement - ns.Session.Folders.GetLast() vous donnera alors un handle pour ce PST/Folder – brendan
donc la variable "pst" dans votre code (en 2 endroits) est une faute de frappe censée être "oFolder"? – akavel