MBOX फ़ाइलों को विभाजित करना

MBOX संग्रह को विभाजित करें / विभाजन प्रक्रिया रद्द करें

Aspose.Email बड़े मेलबॉक्स फ़ाइलों को प्रबंधनीय भागों में विभाजित करने के मेथड प्रदान करता है। इससे प्रदर्शन और मेमोरी दक्षता में सुधार होता है, विशेष रूप से बड़े ईमेल आर्काइव्स के साथ काम करते समय। उपलब्ध विभाजन विकल्प आपके द्वारा उपयोग किए जा रहे .NET संस्करण पर निर्भर करते हैं।

.NET संस्करण द्वारा समर्थित APIs

.NET Framework 4.5 और .NET Core के लिए

आप MBOX डेटा को नीचे के उपयोग से विभाजित कर सकते हैं SplitInto विधि MboxStorageReader क्लास, जिसमें कैंसलेशन टोकन शामिल करने या आउटपुट फ़ाइल नाम को अनुकूलित करने का विकल्प है:

पर्याविधि (Parameters):

  • chunkSize: प्रत्येक टुकड़े (chunk) का अनुमानित आकार बाइट्स में।
  • outputPath: वह फ़ोल्डर पाथ जहाँ टुकड़े (chunks) बनाए जाएंगे।
  • 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);
}