Я хочу знать, есть ли лучший способ определить, была ли папка внутри магазина создана пользователем, или это папка по умолчанию (созданная Outlook).
У меня есть код ниже, который перебирает все папки в магазине, обнаруживая некоторые из них по умолчанию.
public List<string> GetEntryIDFoldersToMonitor()
{
OlDefaultFolders[] defaultFolders = new OlDefaultFolders[]
{
OlDefaultFolders.olFolderCalendar,
OlDefaultFolders.olFolderConflicts,
OlDefaultFolders.olFolderContacts,
OlDefaultFolders.olFolderDeletedItems,
OlDefaultFolders.olFolderDrafts,
OlDefaultFolders.olFolderJournal,
OlDefaultFolders.olFolderJunk,
OlDefaultFolders.olFolderLocalFailures,
OlDefaultFolders.olFolderNotes,
OlDefaultFolders.olFolderOutbox,
OlDefaultFolders.olFolderRssFeeds,
OlDefaultFolders.olFolderSentMail,
OlDefaultFolders.olFolderServerFailures,
OlDefaultFolders.olFolderSuggestedContacts,
OlDefaultFolders.olFolderSyncIssues,
OlDefaultFolders.olFolderTasks,
OlDefaultFolders.olFolderToDo
};
Stores stores = Global.OutlookApp.Session.Stores;
MAPIFolder folder = null;
List<string> foldersToMonitor = new List<string>();
for (int i = 1; i < stores.Count; i++)
{
Store store = stores[i];
try
{
for (int j = 0; j < defaultFolders.Length; j++)
folder = store.GetDefaultFolder(defaultFolders[j]);
}
catch { continue; }
try
{
if (folder != null)
foldersToMonitor.Add(folder.EntryID);
}
finally
{
if (folder != null)
Marshal.ReleaseComObject(folder);
}
}
return foldersToMonitor;
}
Я спрашиваю об этом, потому что некоторые папки загружаются слишком долго. Например, у одного из наших пользователей обработка папки по умолчанию olServerFailures заняла 55 секунд.
Есть ли лучший способ обнаружить это?