استخراج محتوى OFT من ZIP في .NET
استخدم Aspose.ZIP for .NET لفتح أرشيف ZIP، فحص إدخالاته، واستعادة ملفات OFT التي يحتاجها تطبيق C#. ينتمي OFT إلى فئة بريد ومعلومات شخصية؛ وفي هذه الصفحة يعني الاستخراج اختيار الملفات المطابقة من حاوية ZIP وكتابتها إلى وجهة يتحكم بها التطبيق، وليس تحويل محتوى الملف الداخلي.يناسب هذا المسار ترحيل البريد، eDiscovery، استيراد الرسائل، التقويمات وجهات الاتصال. يستطيع التطبيق تجاهل العناصر غير المرتبطة، تطبيق حدود الحجم والمسارات، وتمرير الملفات المقبولة إلى المرحلة التالية من دون فك الحزمة بالكامل.
كيفية استخراج ملفات OFT من 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، اختر الإدخالات التي تطابق .oft، ثم استدع ArchiveEntry.Extract لكل مسار إخراج معتمد. تستخدم الأمثلة أسماء الملفات النهائية أو مساراتا متحقق منها حتى لا تتحكم أسماء الأرشيف في مكان الكتابة.
خطوات استعادة ملفات OFT في C#
- حدد مسار ZIP المصدر وأنشئ مجلد إخراج معزولا.
- افتح الحزمة باستخدام الفئة Archive.
- استعرض Archive.Entries بدلا من فك كل العناصر مباشرة.
- اختر الإدخالات التي تطابق .oft أو القاعدة الخاصة بالتنسيق.
- ابن مسار إخراج يبقى داخل الجذر المعتمد.
- ارفض الإدخالات التي تتجاوز حد الحجم بعد الاستخراج.
- احفظ كل عنصر مقبول باستخدام ArchiveEntry.Extract.
متطلبات النظام
قبل تشغيل المثال، تأكد من توفر:
- Runtime مدعوم من .NET على Windows أو Linux أو macOS.
- Visual Studio أو Rider أو VS Code أو بيئة تطوير C# أخرى.
- Aspose.ZIP for .NET مثبتا عبر NuGet أو مضافا كمرجع assembly.
- صلاحية قراءة لأرشيف ZIP وصلاحية كتابة لمجلد الإخراج.
- حدود واضحة للحجم والوقت والتخزين عند التعامل مع ملفات غير موثوقة.
مثال C#: اختيار ملفات OFT داخل أرشيف ZIP
يفتح المثال حزمة ZIP، يطبق فلترة على الإدخالات غير المجلدية، ثم يكتب الملفات المطابقة إلى وجهة واحدة أو إلى بنية آمنة حسب حاجة التنسيق. في الإنتاج، حدد سياسة واضحة للتعامل مع الأسماء المكررة.
استخراج ملفات OFT من ZIP - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-oft");
string[] allowedExtensions = { ".oft" };
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);
}
}
ملاحظات إنتاجية حول ملفات OFT
استخدم مكون بريد مناسب للتحقق من البنية والمرفقات والفهارس والحقول بعد استعادة الملف.لا تعتبر الامتداد دليلا كافيا على صحة المحتوى. إذا كانت المرحلة التالية ستقرأ الملف أو تعرضه أو تحوله، فليتم التحقق بواسطة المكون المسؤول عن ذلك التنسيق. استخدم مجلدا فريدا لكل عملية وطبق سياسة محددة للأسماء المكررة.
اعتبارات الأمان والخصوصية
عامل أسماء الإدخالات ومحتوى الأرشيف كمدخلات غير موثوقة. لا تدمج ArchiveEntry.Name مباشرة مع مجلد الإخراج؛ فقد يحتوي الاسم على مسار مطلق أو انتقال إلى مجلد أب. عند الحفاظ على المجلدات، حل المسار النهائي وتأكد من بقائه داخل الجذر المعتمد.اضبط حدودا للحجم المضغوط، الحجم بعد الاستخراج، عدد الإدخالات، وقت التنفيذ، والتزامن. استخدم تخزينا مؤقتا محدود الصلاحيات، نظف الناتج بعد الفشل، وتجنب تسجيل أسماء الملفات الخاصة أو كلمات المرور أو محتوى الملفات.
أسئلة شائعة حول استخراج OFT
كيف أستخرج ملفات OFT فقط من أرشيف ZIP في C#؟
افتح ZIP باستخدام Archive، استعرض Archive.Entries، طبق شرط .oft أو قاعدة التنسيق، ثم استدع Extract لكل مسار إخراج مقبول.
هل يتحقق Aspose.ZIP من محتوى ملف OFT نفسه؟
لا. Aspose.ZIP يستعيد الملف من الأرشيف. قراءة بنية OFT أو التحقق منها أو تحويلها مسؤولية مكون متخصص بذلك التنسيق.
هل يمكن استخدام الفكرة نفسها مع 7Z أو RAR أو TAR؟
نعم من حيث الفكرة، لكن يجب فتح كل حاوية بفئة Aspose.ZIP المناسبة لها، وقد تختلف أنواع الإدخالات والعمليات المتاحة.
كيف أتعامل مع أسماء OFT المكررة؟
حدد السياسة قبل الاستخراج: رفض التكرار، إنشاء اسم فريد، أو الحفاظ على بنية مجلدات نسبية بعد التحقق من المسارات.
أدلة استخراج ملفات البريد
تصفح صفحات C# لاستخراج الرسائل ومخازن البريد والتقويمات وجهات الاتصال.