سؤال

القيام بأي C++ جنو مستقل فئات موجودة والتي التعامل مع مسارات عبر منصة ؟ بلدي تطبيقات بناء على ويندوز و لينكس.لدينا ملفات التكوين الرجوع إلى ملف آخر في فصل الدليل.أود أن تكون قادرة على قراءة مسار ملف التهيئة الأخرى إلى الدرجة التي من شأنها العمل على حد سواء لينكس أو ويندوز.

الفئة التي تقدم أصغر البصمة ترجمة مسارات استخدامها على أي نظام ؟ شكرا

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

مكتبة الملفات في دفعة ربما تساعدك.

هناك العديد من الطرق, IMHO الجواب الصحيح هو إعادة تصميم البرنامج الخاص بك لتجنب التلاعب مسارات.لقد نشر الإجابة هنا: https://stackoverflow.com/a/40980510/2345997 وهو ذات الصلة.

الطرق:

  1. إضافة خيار سطر الأوامر التي تسمح للمستخدم لتحديد المسار في السؤال بدلا من القراءة من ملف التكوين.
  2. إضافة خيار سطر الأوامر بحيث يمكن للمستخدم تحديد مسار قاعدة.المسارات في ملف التكوين سيتم تفسيره على أنه يقع تحت هذه القاعدة المسار.
  3. تقسيم ملف config إلى ثلاثة.ملف واحد سوف يكون عبر منصة تكوين ملف آخر سوف يكون لديك windows فقط التكوين النهائي سيكون الملف لينكس فقط التكوين.ثم يمكن للمستخدم تحديد المسار الصحيح لكل من ويندوز و لينكس.على ويندوز الخاص بك البرنامج سوف تقرأ عبر منصة config و ويندوز فقط ملف التكوين.على لينكس فإنه سيتم قراءة عبر منصة ملف لينكس فقط ملف التكوين.
  4. إضافة تجهيزها إلى ملف config تحليل.وهذا سوف يسمح لك أن يكون واحدا config حيث يمكن للمستخدم جعل البرنامج تجاهل بعض الخطوط في الملف اعتمادا على نظام التشغيل الذي يتم تشغيل البرنامج على.وبالتالي فإن المستخدم سوف تكون قادرة على تحديد مسار الملف مرتين.مرة واحدة لينكس ، ومرة ويندوز.
  5. تغيير التصميم بحيث أن الملفات هي دائما موجودة في نفس الدليل القابل للتنفيذ - ثم المستخدم يحدد أسماء الملفات في ملف التكوين بدلا من مسارات الملفات.
  6. استخدام وظيفة بسيطة أن التبديل "/" إلى "\".ثم المستند إلى المستخدم التي يجب أن تحدد مسارات لينكس مسارات هذا التحول سيتم تطبيق ويندوز.
  7. إنشاء المسار الخاص بك مصغرة لغة هذا المستند إلى المستخدم.E. g:"/" - يحدد دليل فاصل, {root} - توسع جذر نظام الملفات, {cwd} - توسع إلى الدليل الحالي, {التطبيق} - توسيع الطريق إلى التطبيق الخاص بك الخ...ثم يمكن للمستخدم تحديد مسارات الملفات مثل:{روت}/myfiles/bob.txt على كل المنابر.
  8. بعض المسارات سوف تعمل على كل المنصات.E. g:المسارات النسبية مثل ../بلدي files/bill.txt.تقييد التطبيق يعمل فقط مع هذه المسارات.الوثيقة هذا القيد وكيفية التطبيق يعالج المسارات للمستخدم.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top