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);
}