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:
-
SplitInto(long chunkSize, string outputPath, CancellationToken token)
-
SplitInto(long chunkSize, string outputPath, string partFileNamePrefix, CancellationToken token)
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:
-
SplitInto(long chunkSize, string outputPath, string partFileNamePrefix)
-
Cancel() - Bölme sürecini ortasında kesmek için kullanılır.
İ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);
}