"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تحليل قوائم دليل FTP المنسقة بشكل موثوق في C#؟

كيف يمكنني تحليل قوائم دليل FTP المنسقة بشكل موثوق في C#؟

نشر في 2025-03-23
تصفح:823

How Can I Reliably Parse Variably Formatted FTP Directory Listings in C#?

webrequestmethods.ftp.listdirectorydetails طريقة. ينشأ التحدي بسبب الاختلافات في تنسيقات الاستجابة عبر برنامج خادم FTP. على سبيل المثال ، قد يقوم خادم واحد بإرجاع استجابة بتنسيق DOS على طراز Windows ، بينما قد يلتزم شخص آخر بتنسيق UNIX على طراز Linux. بالنسبة لتنسيق Style DOS ، يمكن استخدام الكود التالي:

نمط السلسلة = "^(\\ d -\\ d -\\ d \\ s \\ d: \\ d (\\ w {2})) \\ s (

| \\ d) \\ s ( regex regex = جديد regex (نمط) ؛ بينما (! reader.endofstream) { خط السلسلة = reader.ReadLine () ؛ تطابق المطابقة = regex.match (الخط) ؛ سلسلة s = match.groups [1] .value ؛ DateTime modified = dateTime.ParseExact (s ، "mm-dd-yy hh: mmtt" ، الثقافة ، datetimestyles.none) ؛ s = match.groups [2]. value ؛ حجم طويل = (s! = "")؟ Long.Parse (s): 0 ؛ اسم السلسلة = match.groups [3] .value ؛ console.writeline ("{0 ، -16} {1،9} {2}" ، الاسم ، الحجم ، المعدل) ؛ }

الحل الحديث باستخدام أمر mlsd:

طريقة أفضل هي الاستفادة من أمر MLSD ، الذي يدعمه خوادم FTP الحديثة. يقوم هذا الأمر بإرجاع تنسيق موحد قابل للقراءة للآلة لقوائم الدليل. بعض مكتبات الطرف الثالث ، مثل WINSCP .NET ، تدعم الأمر MLSD وتوفر نتائج محسورة بطريقة متسقة. foreach (ملف RemoteFileInfo في الملفات) { console.writeline ("{0 ، -16} {1،9} {2}" ، file.name ، file.length ، file.lastwriteTime) ؛ }

الخلاصة:

تتطلب استجابات قائمة تحليل FTP FTP معالجة دقيقة لتنسيقات مختلفة. على الرغم من أن الحل المخصص ممكن ، إلا أنه أكثر موثوقية لاستخدام المكتبات التي تدعم أمر MLSD الحديث. هذا النهج من أجل تحليل متسق وتبسيط مهمة استخراج بيانات تعريف الملفات والدليل ذات الصلة من استجابات FTP.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3