인터넷 및 MSDN 문서 주위의 다양한 샘플에서이 코드를 함께 작성할 수있었습니다. 이렇게하면 Outlook의 고수준 폴더를 선택할 수 있으며 그 아래에있는 모든 폴더가 백업됩니다. 제 경우에는 메일 폴더가 실제로 제외되지 않도록 제외 시켰습니다.
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; "pst"객체는 어디에 선언되고 초기화됩니까? – akavel
ns.AddStore (BACKUP_PST_PATH) - 해당 위치에 PST가 없으면 PST를 만듭니다. ns.Session.Folders.GetLast()는 해당 PST/폴더 – brendan
에 대한 핸들을 제공하므로 코드의 "pst"변수 (2 곳)은 "oFolder"가되는 오타입니다? – akavel