Асинхронни операции с 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);
}