Добавление и удаление хранилища
В этом примере показано, как добавлять и удалять хранилище в заданном профиле.
Пример
В этом образце кода показан метод добавления и удаления хранилища в указанном профиле путем вызова метода AddStoreEx и метода RemoveStore соответственно по отношению к объекту NameSpace .
В Outlook хранилище PST можно удалить только программным методом. Следующий пример кода добавляет хранилище Юникода и помещает PST-файл в расположение по умолчанию для пользовательских PST-файлов: Documents and Settings\<UserName>\Local Settings\Application Data\Microsoft\Outlook. В этом образце кода применяется Environment.SpecialFolder.LocalApplicationData для извлечения пути к папке Application Data в папке Local Settings. После добавления хранилища образец кода удаляет хранилище. Так как метод RemoveStore требует наличия объекта Folder для удаления Store , он перечисляет коллекцию Stores для поиска только что добавленного объекта Store, исходя из свойства FilePath объекта Store.
RemoveStore только удаляет хранилище из текущего профиля. При этом PST-файл не удаляется из файловой системы.
Если для тестирования этого примера кода вы используете Visual Studio, сначала добавьте ссылку на компонент библиотеки объектов Microsoft Outlook 15.0 и укажите переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция Imports или using не должна идти непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующих строках кода показано, как выполнить импорт и назначение в Visual Basic и C#.
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub CreateUnicodePST()
Dim path As String = Environment.GetFolderPath( _
Environment.SpecialFolder.LocalApplicationData) _
& "\Microsoft\Outlook\MyUnicodeStore.pst"
Try
Application.Session.AddStoreEx( _
path, Outlook.OlStoreType.olStoreUnicode)
Dim stores As Outlook.Stores = Application.Session.Stores
For Each store As Outlook.Store In stores
If store.FilePath = path Then
Dim folder As Outlook.Folder = _
CType(store.GetRootFolder(), Outlook.Folder)
' Remove the store
Application.Session.RemoveStore(folder)
End If
Next
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
End Sub
private void CreateUnicodePST()
{
string path = Environment.GetFolderPath(
Environment.SpecialFolder.LocalApplicationData)
+ @"\Microsoft\Outlook\MyUnicodeStore.pst";
try
{
Application.Session.AddStoreEx(
path, Outlook.OlStoreType.olStoreUnicode);
Outlook.Stores stores = Application.Session.Stores;
foreach (Outlook.Store store in stores)
{
if (store.FilePath == path)
{
Outlook.Folder folder =
store.GetRootFolder() as Outlook.Folder;
// Remove the store
Application.Session.RemoveStore(folder);
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}