تم الحل: الحصول على اسم الملف من المسار

آخر تحديث: 09/11/2023
نبذة عن الكاتب: ج مصدر تريل

بالتأكيد، دعونا نتعمق في موضوع الحصول على اسم ملف من مسار بمساعدة C++.

المقدمة
يعد استخراج اسم الملف من المسار مهمة متكررة في البرمجة، خاصة في العمليات التي تتضمن معالجة الملفات. توفر هذه المقالة شرحًا متعمقًا لكيفية إنجاز هذه المهمة باستخدام C++. بحلول نهاية المقال، ستتمكن من فهم وتنفيذ حل لهذه المشكلة.

نقدم الحلول الذكية
يتضمن الحل استخدام الوظائف المضمنة التي توفرها مكتبة C++ القياسية. المكتبة التي سنركز عليها هي مكتبة نظام الملفات، والتي تم تقديمها في C++ 17. ويوفر وظائف مختلفة لمعالجة الملفات والدلائل.

تتضمن #
std::string get_filename(std::string path){
إرجاع std::filesystem::path(path).filename().string();
}

فهم المدونة
تأخذ الدالة get_filename وسيطة سلسلة - المسار، وترجع اسم الملف. تستخدم الوظيفة مكتبة نظام الملفات. نقوم بإنشاء كائن نظام الملفات::path بسلسلة المسار المتوفرة، واستخدام طريقة filename() للحصول على اسم الملف. يتم بعد ذلك تحويل اسم الملف إلى سلسلة باستخدام طريقة string() ويتم إرجاعه بواسطة الوظيفة.

  • السطر الأول هو المكان الذي نقوم فيه بتضمين مكتبة نظام الملفات في الكود الخاص بنا.
  • يتم تعريف الدالة get_filename بمسار وسيطة سلسلة.
  • نقوم بإنشاء كائن نظام الملفات::path باستخدام سلسلة المسار.
  • يتم استدعاء أسلوب اسم الملف على كائن filesystem::path للحصول على اسم الملف.
  • يتم بعد ذلك تحويل اسم الملف إلى سلسلة باستخدام طريقة string().

مكتبة نظام الملفات

قدم معيار C++ 17 مكتبة نظام الملفات، والتي تتكون من سلسلة من الفئات والوظائف التي تهدف إلى تنفيذ العمليات على مسارات الملفات والملفات والأدلة. إحدى فئاته - نظام الملفات::path، يتم استخدامها في الحل الذي نقدمه لاستخراج اسم الملف من المسار.

تتيح لك هذه المكتبة إجراء عمليات مثل القراءة والكتابة وإعادة تسمية الملفات وإنشاء الدلائل وإزالتها وما إلى ذلك، مما يؤدي إلى تبسيط عمليات معالجة نظام الملفات في لغة C++ بشكل كبير.

طرق بديلة

في الحالات التي لا تتوفر فيها مكتبة نظام الملفات، يمكن استخدام طرق أخرى لاستخراج اسم الملف من المسار. يتضمن أحد البدائل استخدام وظائف معالجة السلسلة المتوفرة في مكتبة السلسلة. هنا مثال:

تتضمن #
std::string get_filename_old(std::string path){
تم العثور على std::size_t = path.find_last_of("/\");
مسار الإرجاع.substr(وجد+1);
}

خلاصة القول، يمكن تحقيق استخراج اسم ملف من المسار باستخدام مكتبة نظام الملفات في لغة C++. من الضروري أن تكون على دراية بوظائف المكتبة حيث أن التعامل مع الملفات هو السائد في العديد من مهام البرمجة.

الوظائف ذات الصلة: