MBOX Dosyalarını Bölme

MBOX Depolamasını Böl/ Bölme İşlemini İptal Et

Aspose.Email, büyük posta kutusu dosyalarını yönetilebilir parçalara bölmek için yöntemler sunar. Bu, özellikle büyük e-posta arşivleriyle çalışırken performansı ve bellek verimliliğini artırmaya yardımcı olur. Mevcut bölme seçenekleri, kullandığınız .NET sürümüne göre değişir.

.NET Sürümüne Göre Desteklenen API’lar

.NET Framework 4.5 ve .NET Core İçin

MBOX verisini aşağıdakini kullanarak segmentleyebilirsiniz SplitInto metodu MboxStorageReader sınıf, iptal tokenı ekleme veya çıktı dosyası adlandırmasını özelleştirme seçeneği ile:

Parametreler:

  • chunkSize: Her parçanın yaklaşık boyutu (bayt cinsinden).
  • outputPath: Parçaların oluşturulacağı klasör yolu.
  • partFileNamePrefix: Her parçanın dosya adına eklenecek önek.
  • token: İşlemin olası iptaline izin veren bir CancellationToken.

.NET 4.5 Altındaki Sürümler İçin

Önceki sürümler aynı desteği sağlar SplitInto metod ancak iptal tokenları olmadan:

İptalleme ile Kontrollü Bölme için Kod Örnekleri

Aşağıdaki kod örnekleri, bir arşivi en fazla 5 parçaya bölmeyi ve ardından işlemi otomatik olarak iptal etmeyi gösterir:

.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 Altı

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

Büyük MBOX Dosyalarını Asenkron Olarak Böl

Büyük e-posta arşivleriyle çalışmak verimsiz ve bellek yoğun olabilir. Performansı ve yönetilebilirliği artırmak için Aspose.Email for .NET asenkron SplitIntoAsync metod, büyük dosyaları daha küçük parçalara bölmenizi sağlar - ana iş parçacığını engellemeden. Aşağıdaki kod örneği, nasıl kullanılacağını gösterir MboxStorageReader.CreateReaderAsync büyük bir MBOX dosyasını asenkron olarak açmak ve ardından şu yöntemi çağırmak için SplitIntoAsync daha küçük dosyalara bölmek için, her biri maksimum 10 MB boyutunda. Oluşan parçalar, belirtilen çıktı dizinine "chunk_" önekiyle kaydedilir.

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