استخراج محتوى OST من ZIP في .NET
استخدم Aspose.ZIP for .NET لفتح أرشيف ZIP، فحص إدخالاته، واستعادة ملفات OST التي يحتاجها تطبيق C#. ينتمي OST إلى فئة بريد ومعلومات شخصية؛ وفي هذه الصفحة يعني الاستخراج اختيار الملفات المطابقة من حاوية ZIP وكتابتها إلى وجهة يتحكم بها التطبيق، وليس تحويل محتوى الملف الداخلي.يناسب هذا المسار ترحيل البريد، eDiscovery، استيراد الرسائل، التقويمات وجهات الاتصال. يستطيع التطبيق تجاهل العناصر غير المرتبطة، تطبيق حدود الحجم والمسارات، وتمرير الملفات المقبولة إلى المرحلة التالية من دون فك الحزمة بالكامل.
كيفية استخراج ملفات OST من ZIP باستخدام C#
ثبت حزمة Aspose.ZIP for .NET وأضف namespace Aspose.Zip. تتوفر بيانات الإدخال قبل الكتابة، لذلك يمكن للتطبيق فحص ArchiveEntry.Name و ArchiveEntry.IsDirectory و ArchiveEntry.UncompressedSize قبل استخراج أي ملف.
Package Manager Console Command
PM> Install-Package Aspose.Zip
افتح ZIP باستخدام Archive، استعرض Archive.Entries، اختر الإدخالات التي تطابق .ost، ثم استدع ArchiveEntry.Extract لكل مسار إخراج معتمد. تستخدم الأمثلة أسماء الملفات النهائية أو مساراتا متحقق منها حتى لا تتحكم أسماء الأرشيف في مكان الكتابة.
خطوات استعادة ملفات OST في C#
- حدد مسار ZIP المصدر وأنشئ مجلد إخراج معزولا.
- افتح الحزمة باستخدام الفئة Archive.
- استعرض Archive.Entries بدلا من فك كل العناصر مباشرة.
- اختر الإدخالات التي تطابق .ost أو القاعدة الخاصة بالتنسيق.
- ابن مسار إخراج يبقى داخل الجذر المعتمد.
- ارفض الإدخالات التي تتجاوز حد الحجم بعد الاستخراج.
- احفظ كل عنصر مقبول باستخدام ArchiveEntry.Extract.
متطلبات النظام
قبل تشغيل المثال، تأكد من توفر:
- Runtime مدعوم من .NET على Windows أو Linux أو macOS.
- Visual Studio أو Rider أو VS Code أو بيئة تطوير C# أخرى.
- Aspose.ZIP for .NET مثبتا عبر NuGet أو مضافا كمرجع assembly.
- صلاحية قراءة لأرشيف ZIP وصلاحية كتابة لمجلد الإخراج.
- حدود واضحة للحجم والوقت والتخزين عند التعامل مع ملفات غير موثوقة.
مثال C#: اختيار ملفات OST داخل أرشيف ZIP
يفتح المثال حزمة ZIP، يطبق فلترة على الإدخالات غير المجلدية، ثم يكتب الملفات المطابقة إلى وجهة واحدة أو إلى بنية آمنة حسب حاجة التنسيق. في الإنتاج، حدد سياسة واضحة للتعامل مع الأسماء المكررة.
استخراج ملفات OST من ZIP - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-ost");
string[] allowedExtensions = { ".ost" };
const ulong MaxEntrySize = 100UL * 1024 * 1024;
Directory.CreateDirectory(outputDirectory);
using (var archive = new Archive(archivePath))
{
foreach (ArchiveEntry entry in archive.Entries)
{
if (entry.IsDirectory) continue;
string fileName = Path.GetFileName(entry.Name);
if (string.IsNullOrWhiteSpace(fileName)) continue;
string extension = Path.GetExtension(fileName);
if (!Array.Exists(
allowedExtensions,
value => string.Equals(value, extension, StringComparison.OrdinalIgnoreCase)))
{
continue;
}
if (entry.UncompressedSize > MaxEntrySize)
{
throw new InvalidDataException(
$"Entry '{fileName}' exceeds the 100 MB extraction limit.");
}
string destinationPath = Path.Combine(outputDirectory, fileName);
entry.Extract(destinationPath);
}
}
ملاحظات إنتاجية حول ملفات OST
استخدم مكون بريد مناسب للتحقق من البنية والمرفقات والفهارس والحقول بعد استعادة الملف.لا تعتبر الامتداد دليلا كافيا على صحة المحتوى. إذا كانت المرحلة التالية ستقرأ الملف أو تعرضه أو تحوله، فليتم التحقق بواسطة المكون المسؤول عن ذلك التنسيق. استخدم مجلدا فريدا لكل عملية وطبق سياسة محددة للأسماء المكررة.
اعتبارات الأمان والخصوصية
عامل أسماء الإدخالات ومحتوى الأرشيف كمدخلات غير موثوقة. لا تدمج ArchiveEntry.Name مباشرة مع مجلد الإخراج؛ فقد يحتوي الاسم على مسار مطلق أو انتقال إلى مجلد أب. عند الحفاظ على المجلدات، حل المسار النهائي وتأكد من بقائه داخل الجذر المعتمد.اضبط حدودا للحجم المضغوط، الحجم بعد الاستخراج، عدد الإدخالات، وقت التنفيذ، والتزامن. استخدم تخزينا مؤقتا محدود الصلاحيات، نظف الناتج بعد الفشل، وتجنب تسجيل أسماء الملفات الخاصة أو كلمات المرور أو محتوى الملفات.
أسئلة شائعة حول استخراج OST
كيف أستخرج ملفات OST فقط من أرشيف ZIP في C#؟
افتح ZIP باستخدام Archive، استعرض Archive.Entries، طبق شرط .ost أو قاعدة التنسيق، ثم استدع Extract لكل مسار إخراج مقبول.
هل يتحقق Aspose.ZIP من محتوى ملف OST نفسه؟
لا. Aspose.ZIP يستعيد الملف من الأرشيف. قراءة بنية OST أو التحقق منها أو تحويلها مسؤولية مكون متخصص بذلك التنسيق.
هل يمكن استخدام الفكرة نفسها مع 7Z أو RAR أو TAR؟
نعم من حيث الفكرة، لكن يجب فتح كل حاوية بفئة Aspose.ZIP المناسبة لها، وقد تختلف أنواع الإدخالات والعمليات المتاحة.
كيف أتعامل مع أسماء OST المكررة؟
حدد السياسة قبل الاستخراج: رفض التكرار، إنشاء اسم فريد، أو الحفاظ على بنية مجلدات نسبية بعد التحقق من المسارات.
أدلة استخراج ملفات البريد
تصفح صفحات C# لاستخراج الرسائل ومخازن البريد والتقويمات وجهات الاتصال.