سؤال

أرغب في استخدام مكتبة BOOST.FILESYSTEM لمعالجة المسارات والملفات والدلائل. سؤالي هل المسارات أطول من Max_Path المدعومة؟

أعلم أنه في Win32API لدينا حل بديل "؟ " ولكنه لا يدعمه وظائف أساسية مثل PathAppend و Pathcombine.

لذلك أنا أبحث عن أي معلومات مفيدة حول MAX_PATH و BOOST.FS.

شكرًا

تحديث: أنا أهتم بجميع عمليات الإلحاق مثل المسار ، أو الجمع بين المسار ، وما إلى ذلك (لدي تلك الوظائف في Win32API ، لكنها لا تعمل مع مسارات أطول من Max_Path) على سبيل المثال CreateFilew وحذف مسارات الدعم أطول من Max_Path. قد تعزز.

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

المحلول

الحقيقة هي أن Windows يدعم مسارات من أي طول ، ويمكن تحويل أي مسار إلى سلسلة على Windows. مضيفا \\?\ مطلوب في مثل هذه الحالة ، ولكن هذا هو جزء من عملية "جعل سلسلة من مسار معين".

Afaik ، Boost :: Filesystem يقوم بهذا الخطأ على Windows.

لا أعرف ما إذا كان الإصلاح مخططًا. يرى هذه حول كيفية القيام بذلك.

نصائح أخرى

يمكنك معالجة أي طول من سلسلة مسار نظام الملف مع أو بدون تعزيز.

Max_Path هي قيود واجهات برمجة تطبيقات ملف Windows. أي أنه لا يمكنك تمرير سلسلة مسار طويلة إلى ويندوز ويبس.

على سبيل المثال ، إزالة وظيفة Boost.Filesystem سيفشل مع مسار طول Max_Path أطول من Max_Path. تريد Boost.Filesystem أن يفعل شيئًا مثل تغيير الدليل الحالي واستخدام المسار النسبي لمنع تقييد Max_Path؟ لا أعتقد ذلك ممكن.

تحرير

نظرًا لأن BOOST.FILESYSTEM يتم تنفيذه على سلسلة C ++ ، فلا داعي للقلق بشأن طول المسار. BOOST.FILESYSTEM لا يوفر فقط طرق معالجة سلسلة المسار ولكن أيضًا طرق معالجة نظام الملفات. يجب عليك تجنب طرق نظام الملفات إذا كان المسار الناتج طويلًا جدًا.

لا أعرف ما إذا كان يعزز.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top