الصفحة الرئيسية » howto » لماذا يعتبر Windows Reporting هذا المجلد طويل جدًا للنسخ؟

    لماذا يعتبر Windows Reporting هذا المجلد طويل جدًا للنسخ؟

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

    مهلا كيف لالمهوس!

    لذا في اليوم الآخر ، كنت أعمل على إعادة تنظيم بعض الملفات على جهاز الكمبيوتر الخاص بي ، وإنشاء مجلدات ، وهذا النوع من الأشياء. بعد ذلك ، عندما كنت أنقل بعض الملفات إلى مجلد ، أتلقى رسالة ، وأفترض أن مسار المجلد الناتج سيكون طويلًا جدًا. لقد كنت مشوشا. وأنا أعلم أن كل نظام تشغيل واحد منذ DOS يدعم أسماء الملفات الطويلة ، بعد يدعي ويندوز أن المسار طويل جدا؟ لماذا يحدث هذا?

    صادقا,

    السيد غير منظم

    المشكلة التي تواجهها هي تقاطع مؤسف لنظامين ، في حالات مثل هذه ، ينتج خطأ. لفهم مصدر الخطأ بالضبط ، نحتاج إلى البحث في تاريخ أسماء الملفات الطويلة (LFN) وكيفية تفاعل Windows معها قبل الخوض في حلول.

    تم تقديم أسماء ملفات طويلة ، من خلال بنية MS-DOS الأساسية ، في نظام التشغيل Windows 95. سمح نظام LFN الجديد لأسماء الملفات والمجلدات حتى 255 حرفًا. كان هذا توسعاً مرحباً به في نظام اسم الملف السابق ، والذي يُطلق عليه عادةً اسم الملف 8.3 لأن الاسم كان محدودًا بـ 8 أحرف وملحق مكون من ثلاثة أرقام ، ولكن يُعرف أيضًا باسم اسم الملف القصير (SFN). كما يمكنك أن تتخيل ، في ذلك الوقت كان لا يزال هناك الكثير من التطبيقات القائمة على دوس وهناك أكثر من عدد قليل من الصداع في محاولة للحصول على أحدث LFNs و SFNs التقليدية للعب مع بعضها البعض لطيفة. إذا صادفت قرصًا قديمًا أو قرصًا مضغوطًا قديمًا بملفات مقطوعة بشكل غريب عليه (مثل abcdef ~ 1.txt) تم قطع اسم الملف بواسطة تطبيق قديم يستخدم SFN من بعض LFN الأطول وغير المدعوم (مثل abcdefghijk. رسالة قصيرة).

    نحن بعيدون عن منتصف التسعينيات ، ومع ذلك ، فإن كل شيء طويل اسم الملف هو (بالنسبة للجزء الأكبر) تسويتها بحزم. إذا كنت تستخدم إصدارًا من Windows خلال السنوات العشر الماضية ، فمن المحتمل أنك لن تواجه تعارضًا في طول اسم الملف كما اعتدنا على العودة إلى نظام التشغيل DOS / Windows 95. ومع ذلك ، ما زلنا نواجه الفواق ، كما اكتشفت مع مشروع تنظيف القرص الخاص بك. لكن لماذا؟ إذا كان نظام Windows Long Filename يدعم مجلدات وأسماء ملفات تصل إلى 255 حرفًا لكل مكون ، فما الجدار الذي تعمل عليه؟ لا يمكننا إلقاء اللوم على NTFS (نظام الملفات الذي تستخدمه الغالبية العظمى من أجهزة Windows الحديثة) حيث يدعم NTFS تسلسل المجلدات وأسماء الملفات حتى طول مسار إجمالي 32،767 حرفًا. وهذا يتجاوز هيكل الدليل النموذجي الذي يحتاجه معظم المستخدمين.

    حيث يتدفق كل شيء هو مكدس Windows تقييد اصطناعي في أعلى نظام LFN / NTFS: المتغير MAX_PATH. يحدد متغير MAX_PATH أن بنية الدليل الكاملة في Windows لا يمكن أن تتجاوز 260 حرفًا إجماليًا ، بما في ذلك حرف محرك الأقراص والنقط المائل للخلف والشرطة العكسية والرد في أي اتجاه. وبالتالي ، لن يكون لديك سوى MAX_PATH حقيقي من 256 حرفًا ، على سبيل المثال. C: \ ك-256-حرف مسار \.

    إذن ما حدث عندما كنت تقوم بتنظيف جهاز الكمبيوتر الخاص بك هو أن لديك دليل بمسار طويل بالفعل (إما لأن أسماء المجلدات كانت طويلة ، أو أسماء الملفات طويلة ، أو كليهما) ، وعندما حاولت نقل واحد أو أكثر من هذه الدلائل في دليل آخر بمسار طويل ، تجاوز إجمالي طول اسم المسار الحد الأقصى للحروف 260 الذي تم فرضه بواسطة متغير MAX_PATH.

    الآن ، قد تفكر "آه ها! سنقوم فقط بتغيير متغير MAX_PATH وحل المشكلة! ”للأسف ، الأمر ليس بهذه البساطة. ليس فقط المتغير MAX_PATH الذي تم تشفيره بشكل أساسي في Windows ، ولكن حتى إذا مررت بالمشاحنة الهائلة لتغييره ، فسوف ينتهي بك الأمر إلى كسر الكثير لن يكون يستحق ذلك. تتوقع العديد من التطبيقات أن يكون متغير المسار هو ما حدده Windows لفترة طويلة. لا يمكننا الذهاب لتغييرها دون خلق فوضى هائلة.

    ما وقع ذلك عليك؟ حسنًا ، الحل الأبسط هو فقط تعديل بيانات المسار. على سبيل المثال ، إذا كان لديك الكثير من المقالات المحفوظة حيث أنشأ التطبيق / الإضافة التي استخدمتها في حفظها من الويب دليلاً كان العنوان الكامل للمقال + مقالة المقالة ، وبعد ذلك اسم الملف نفسه هو العنوان الكامل من المقالة + مقالة المقالة ، سيكون من البسيط حقًا أن تصل إلى MAX_PATH أو تتجاوزها بحفظ واحد. يعد تحرير تلك العناوين الضخمة للمجلدات والمجلدات إلى حجم أكثر معقولية طريقة سهلة لحل المشكلة.

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

    للاستفادة من واجهة برمجة التطبيقات هذه واستخدام أدوات سطر الأوامر في أسماء المجلدات / الملفات غير المرغوب فيها ، يلزمك ببساطة إلحاق اسم الدليل بعدد قليل من الأحرف الزائدة. على سبيل المثال ، إذا كان لديك بنية دليل ضخمة تريد حذفها (ولكنك تلقيت خطأ بسبب طول المسار عندما حاولت ذلك) ، فيمكنك تغيير الأمر من:

    rmdir c: \ documents \ some-really-super-long-folder-name-scheme \

    إلى:

    rmdir \\؟ \ c: \ documents \ some-really-super-long-folder-name-scheme \

    المفتاح هو إضافة \\؟ \ جزء قبل بداية مسار الملف. هذا يرشد Windows إلى تجاهل الحدود المفروضة من قبل متغير MAX_PATH والتفاعل مع المسار الذي قدمته للتو كما تم توفيره / فهمه مباشرة من خلال نظام الملفات الأساسية (والذي يمكن أن يدعم بوضوح مسارًا أطول). كما هو الحال دائمًا ، يجب توخي الحذر عند موجه الأوامر لتجنب حذف الملفات أو الأدلة التي تريد تركها بدون قصد.

    إذا كان لديك نظرة عامة على هذه المشكلة لديك فضول ، وبالتأكيد حفر في هذه المقالة من مكتبة شبكة مطوري Microsoft ، تسمية الملفات والمسارات ، ومساحات الأسماء ، لمزيد من المعلومات حول ما يحدث تحت غطاء محرك السيارة.


    لديك سؤال التكنولوجيا الملحة؟ أرسل لنا رسالة بريد إلكتروني على [email protected] وسنبذل قصارى جهدنا للإجابة عليها.