Operacje asynchroniczne z plikami PST

Aby zwiększyć skalowalność i responsywność nowoczesnych aplikacji, Aspose.Email dla .NET oferuje asynchroniczne metody pracy z plikami PST. Te nowe API pozwalają programistom tworzyć, otwierać, scalać i dzielić pliki PST bez blokowania głównego wątku, co czyni je idealnymi dla aplikacji UI i usług o dużym obciążeniu.

Asynchroniczne tworzenie plików PST

Ten PersonalStorage.CreateAsync metoda umożliwia asynchroniczne tworzenie nowego pliku PST, zapewniając nieblokujące wykonanie w aplikacjach pracujących z dużą ilością danych lub wymagających responsywnych interfejsów UI. Poniższy przykład kodu demonstruje, jak wdrożyć tę funkcję w projekcie 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}");
}

Asynchroniczne otwieranie plików PST

Aby asynchronicznie otworzyć istniejący plik PST, użyj PersonalStorage.FromFileAsync metoda API Aspose.Email. Poniższy przykład kodu demonstruje, jak wdrożyć tę funkcję w projekcie 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}");
}

Asynchroniczne scalanie plików PST

Ten MergeWithAsync metodę Aspose.Email PersonalStorage Klasa umożliwia asynchroniczne scalanie zawartości jednego pliku PST z innym. Jest to przydatne w scenariuszach, takich jak konsolidacja archiwów poczty, łączenie kopii zapasowych lub przetwarzanie danych e‑mail masowo — bez blokowania głównego wątku aplikacji. Poniższy przykład kodu pokazuje, jak użyć tej metody w projekcie 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.");
}

Asynchroniczne dzielenie plików PST

Poniższy przykład kodu pokazuje, jak asynchronicznie otworzyć istniejący plik PST przy użyciu FromFileAsync, a następnie podziel ją na wiele części przy użyciu SplitIntoAsync. Każda część nie będzie większa niż 50 MB i zostanie zapisana w określonym katalogu wyjściowym. Asynchroniczne wykonanie zapewnia, że operacja nie blokuje głównego wątku, co czyni ją odpowiednią dla aplikacji przetwarzających duże archiwa PST.

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