Membagi File MBOX

Bagi Penyimpanan MBOX/Batalkan Operasi Pembagian

Aspose.Email menyediakan metode untuk membagi file kotak surat besar menjadi potongan yang dapat dikelola. Ini membantu meningkatkan kinerja dan efisiensi memori, terutama saat bekerja dengan arsip email yang luas. Pilihan pemisahan yang tersedia bervariasi tergantung pada versi .NET yang Anda gunakan.

API yang Didukung per Versi .NET

Untuk .NET Framework 4.5 dan .NET Core

Anda dapat membagi data MBOX menggunakan SplitInto metode dari MboxStorageReader kelas, dengan opsi untuk menyertakan token pembatalan atau menyesuaikan penamaan file output:

Parameter:

  • chunkSize: Ukuran perkiraan setiap chunk dalam byte.
  • outputPath: Jalur folder tempat potongan (chunks) akan dibuat.
  • partFileNamePrefix: Awalan yang akan ditambahkan ke nama file setiap bagian.
  • token: Sebuah CancellationToken yang memungkinkan kemungkinan pembatalan operasi.

Untuk Versi .NET Di Bawah 4.5

Versi sebelumnya mendukung hal yang sama SplitInto metode tetapi tanpa token pembatalan:

Contoh Kode untuk Pemisahan Terkontrol dengan Pembatalan

Contoh kode berikut menunjukkan cara membagi arsip menjadi hingga 5 bagian, secara otomatis membatalkan operasi setelahnya:

.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();

Di Bawah .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();
};

Membagi File MBOX Besar Secara Asinkron

Bekerja dengan arsip email besar dapat tidak efisien dan memakan memori banyak. Untuk meningkatkan kinerja dan kemampuan pengelolaan, Aspose.Email untuk .NET menyediakan asinkron SplitIntoAsync metode, yang memungkinkan Anda membagi file besar menjadi potongan lebih kecil - tanpa memblokir thread utama. Contoh kode di bawah ini menunjukkan cara menggunakan MboxStorageReader.CreateReaderAsync untuk membuka file MBOX besar secara asinkron dan kemudian memanggil SplitIntoAsync untuk membaginya menjadi file lebih kecil, masing-masing dengan ukuran maksimum 10 MB. Potongan yang dihasilkan disimpan ke direktori output yang ditentukan menggunakan awalan "chunk_".

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