MBOX 파일 분할

MBOX 저장소 분할/분할 작업 취소

Aspose.Email은 대용량 사서함 파일을 관리하기 쉬운 조각으로 나누는 메서드를 제공합니다. 이는 특히 방대한 이메일 아카이브를 다룰 때 성능과 메모리 효율성을 향상시킵니다. 사용 가능한 분할 옵션은 사용 중인 .NET 버전에 따라 다릅니다.

.NET 버전별 지원 API

.NET Framework 4.5 및 .NET Core용

다음 방법을 사용해 MBOX 데이터를 세분화할 수 있습니다 SplitInto 메서드 MboxStorageReader 클래스이며, 취소 토큰을 포함하거나 출력 파일 이름을 사용자 정의할 옵션이 있습니다:

매개변수:

  • chunkSize: 각 청크의 대략적인 크기(바이트)입니다.
  • outputPath: 청크가 생성될 폴더 경로입니다.
  • partFileNamePrefix: 각 파트 파일 이름에 추가되는 접두사입니다.
  • token: 작업 취소가 가능한 CancellationToken입니다.

.NET 4.5 미만 버전용

이전 버전에서도 동일하게 지원됩니다 SplitInto 취소 토큰 없이 메서드:

취소 기능을 포함한 제어된 분할 코드 샘플

다음 코드 샘플은 아카이브를 최대 5개 파트로 분할하고 이후 자동으로 작업을 취소하는 방법을 보여줍니다:

.NET 4.5 / .NET Core

int partCount = 0;

var tokenSource = new CancellationTokenSource();

var mbox = new MboxrdStorageReader(fileName, new MboxLoadOptions { LeaveOpen = false });

// Subscribe to events
mbox.MboxFileCreated += (sender, e) =>
{
    partCount++;
    if (partCount >= 5)
        tokenSource.Cancel();
};

System.Threading.Tasks.Task task = mbox.SplitInto(10000000, outputPath, tokenSource.Token);
task.Wait();

.NET 4.5 이하

int partCount = 0;
var mbox = new MboxrdStorageReader(fileName, new MboxLoadOptions { LeaveOpen = false });
mbox.SplitInto(10000000, outputPath);

mbox.MboxFileCreated += (sender, e) =>
{
    partCount++;
    if (partCount >= 5)
        mbox.Cancel();
};

대용량 MBOX 파일을 비동기적으로 분할

대용량 이메일 아카이브를 다루는 것은 비효율적이고 메모리를 많이 소모할 수 있습니다. 성능과 관리성을 향상시키기 위해 Aspose.Email for .NET은 비동기 SplitIntoAsync 메서드로, 메인 스레드를 차단하지 않고 큰 파일을 작은 조각으로 분할할 수 있습니다. 아래 코드 샘플은 사용 방법을 보여줍니다 MboxStorageReader.CreateReaderAsync 큰 MBOX 파일을 비동기적으로 열고 다음을 호출합니다 SplitIntoAsync 이를 최대 10 MB 크기의 작은 파일들로 나눕니다. 결과 조각들은 지정된 출력 디렉터리에 "chunk_" 접두사를 사용하여 저장됩니다.

using (var reader = await MboxStorageReader.CreateReaderAsync("input.mbox", new MboxLoadOptions()))
{
    await reader.SplitIntoAsync(10 * 1024 * 1024, "outputDirectory", "chunk_", CancellationToken.None);
}