Асинхронні операції з PST‑файлами

Для підвищення масштабованості та адаптивності сучасних застосунків Aspose.Email для .NET надає асинхронні методи роботи з PST‑файлами. Ці нові API дозволяють розробникам створювати, відкривати, зливати та розділяти PST‑файли без блокування головного потоку, що робить їх ідеальними для UI‑застосунків та високонавантажених сервісів.

Асинхронне створення PST‑файлів

The 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 метод API Aspose.Email. Наступний приклад коду демонструє, як впровадити цю функцію у 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‑файлів

The 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 МБ і буде збережена у вказаному вихідному каталозі. Асинхронне виконання забезпечує, що операція не блокує головний потік, що робить її придатною для застосунків, що обробляють великі архіви PST.

using (var pst = await PersonalStorage.FromFileAsync("input.pst"))
{
    await pst.SplitIntoAsync(50 * 1024 * 1024, "part_", "outputDirectory", CancellationToken.None);
}