Асинхронни операции с PST файлове
За подобряване на мащабируемостта и отзивчивостта в съвременните приложения, Aspose.Email за .NET предоставя асинхронни методи за работа с PST файлове. Тези нови API‑та позволяват на разработчиците да създават, отварят, сливат и разделят PST файлове без блокиране на главния поток, което ги прави идеални за UI приложения и услуги с високо натоварване.
Създаване на PST файлове асинхронно
Този PersonalStorage.CreateAsync методът позволява да се създаде нов PST файл асинхронно, осигурявайки неблокиращо изпълнение в приложения, работащи с големи данни или изискващи отзивчив интерфейс. Следният примерен код демонстрира как да се внедри тази функция в C# проект:
string pstFilePath = "newMailbox.pst";
var format = FileFormatVersion.Unicode;
// Create a new PST file asynchronously
using (var pst = await PersonalStorage.CreateAsync(pstFilePath, format, CancellationToken.None))
{
Console.WriteLine($"PST file created at: {pstFilePath}");
}
Отваряне на PST файлове асинхронно
За асинхронно отваряне на съществуващ PST файл, използвайте PersonalStorage.FromFileAsync метод от Aspose.Email API. Следният примерен код демонстрира как да се внедри тази функция в C# проект:
string pstFilePath = "newMailbox.pst";
var format = FileFormatVersion.Unicode;
// Open the PST file asynchronously
using (var pst = await PersonalStorage.FromFileAsync(pstFilePath, CancellationToken.None))
{
Console.WriteLine("PST file opened successfully.");
// Access folders or messages here
Console.WriteLine($"Root folder name: {pst.RootFolder.DisplayName}");
}
Сливане на PST файлове асинхронно
Този MergeWithAsync метод на Aspose.Email PersonalStorage класът позволява да се слее съдържанието на един PST файл в друг асинхронно. Това е полезно при консолидация на пощенски архиви, комбиниране на резервни копия или обработка на имейлни данни в големи обеми – без да се блокира главният поток на приложението. Следният примерен код показва как да се използва този метод в C# проект:
string targetPstPath = "mainMailbox.pst";
string sourcePstPath = "archiveToMerge.pst";
// Open both PST files asynchronously
using (var targetPst = await PersonalStorage.FromFileAsync(targetPstPath, CancellationToken.None))
using (var sourcePst = await PersonalStorage.FromFileAsync(sourcePstPath, CancellationToken.None))
{
// Merge the source PST into the target PST
await targetPst.MergeWithAsync(sourcePst, CancellationToken.None);
Console.WriteLine("Merge operation completed successfully.");
}
Разделяне на PST файлове асинхронно
Следният примерен код демонстрира как асинхронно да се отвори съществуващ PST файл, използвайки FromFileAsync, а след това да се раздели на множество части, използвайки SplitIntoAsync. Всяка част ще бъде не по-голяма от 50 MB и ще бъде записана в указаната изходна директория. Асинхронното изпълнение гарантира, че операцията не блокира главния поток, което я прави подходяща за приложения, обработващи големи PST архиви.
using (var pst = await PersonalStorage.FromFileAsync("input.pst"))
{
await pst.SplitIntoAsync(50 * 1024 * 1024, "part_", "outputDirectory", CancellationToken.None);
}