PST 파일의 비동기 작업
현대 애플리케이션의 확장성과 응답성을 향상시키기 위해 Aspose.Email for .NET은 PST 파일 작업을 위한 비동기 메서드를 제공합니다. 이러한 새로운 API를 사용하면 개발자는 메인 스레드를 차단하지 않고 PST 파일을 생성, 열기, 병합 및 분할할 수 있어 UI 애플리케이션 및 고부하 서비스에 이상적입니다.
PST 파일을 비동기적으로 생성
다음은 PersonalStorage.CreateAsync 메서드는 새로운 PST 파일을 비동기적으로 생성할 수 있게 해주며, 대용량 데이터를 다루거나 응답성이 높은 UI가 필요한 애플리케이션에서 논블로킹 실행을 가능하게 합니다. 다음 코드 샘플은 이 기능을 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 파일을 비동기적으로 열려면, 다음을 사용하십시오 the 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 파일을 비동기적으로 여는 방법을 보여줍니다 using FromFileAsync, 그리고 이를 사용하여 여러 파트로 분할합니다 SplitIntoAsync. 각 파트는 50 MB를 초과하지 않으며 지정된 출력 디렉터리에 저장됩니다. 비동기 실행을 통해 작업이 메인 스레드를 차단하지 않으므로 대용량 PST 아카이브를 처리하는 애플리케이션에 적합합니다.
using (var pst = await PersonalStorage.FromFileAsync("input.pst"))
{
await pst.SplitIntoAsync(50 * 1024 * 1024, "part_", "outputDirectory", CancellationToken.None);
}