الوصول إلى الملفات عبر شبكة windows بطول MAX_PATH قريب

StackOverflow https://stackoverflow.com/questions/112946

سؤال

أنا أستخدم C++ وأقوم بالوصول إلى مسار UNC عبر الشبكة.هذا المسار أكبر قليلاً من MAX_PATH.لذلك لا أستطيع الحصول على مقبض الملف.

ولكن إذا قمت بتشغيل البرنامج على الكمبيوتر المعني، فلن يكون المسار أكبر من MAX_PATH.حتى أتمكن من الحصول على مقبض الملف.إذا قمت بإعادة تسمية الملف بحيث يحتوي على أحرف أقل (مطروحًا منه طول اسم الكمبيوتر)، فيمكنني الوصول إلى الملف.

هل يمكن الوصول إلى هذا الملف عبر الشبكة حتى مع العلم أن اسم الكمبيوتر في مسار UNC يضعه فوق الحد الأقصى MAX_PATH؟

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

المحلول

وأذكر أن هناك بعض الميزات مثل استخدام \\?\ في بداية الطريق للالتفاف حول MAX_PATH حد.فيما يلي مرجع على MSDN:

http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

بالنسبة للأجهزة البعيدة، يمكنك استخدام اسم مسار مثل: \\?\unc\server\share\path\file.ال \\?\unc\ هي البادئة الخاصة ولا يتم استخدامها كجزء من اسم الملف الفعلي.

نصائح أخرى

قد تتمكن من الحصول على مؤشر للملف إذا حاولت فتح الملف بعد تحويل اسم الملف إلى اسم ملف قصير (8.3).في حالة الفشل في ذلك، هل يمكنك تعيين الدليل الموجود بالملف كمحرك أقراص والوصول إلى الملف بهذه الطريقة؟

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