الوصول إلى الملفات عبر شبكة windows بطول MAX_PATH قريب
-
02-07-2019 - |
سؤال
أنا أستخدم 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).في حالة الفشل في ذلك، هل يمكنك تعيين الدليل الموجود بالملف كمحرك أقراص والوصول إلى الملف بهذه الطريقة؟