معالجة خطأ Windows: المسار الوجهة طويل جدًا

هل حاولت بشدة نقل أو حذف ملف، فقط لتواجه رسالة خطأ مزعجة تقول “مسار الوجهة طويل جدًا؟” هذا الخطأ السيئ الصيت أكثر شيوعًا مما تعتقد، حيث يحوّل مهام إدارة الملفات الأبسط إلى متاهة رقمية.

لكن لا تخف! في هذا البرنامج التعليمي، ستتعلم استراتيجيات مجربة وفعالة للتغلب على مشكلة “مسار الوجهة طويل جدًا”.

الآن، إذا كنت تشعر بالملل من الشعور بأن جهاز الكمبيوتر الخاص بك يلعب على صعوبة، فاستمر في القراءة للتخلص من هذه الرسالة المزعجة في نظام التشغيل ويندوز!

المتطلبات الأساسية

قبل أن تتغلب على خطأ “مسار الوجهة طويل جدًا”، تأكد من أنك مجهز بالأدوات اللازمة لهذه الرحلة، وهي:

  • A Windows computer – This tutorial uses Windows 10 for demonstrations.
  • PowerShell 5.1 أو الأحدث – يستخدم هذا البرنامج التعليمي PowerShell 7.4.0.
  • صلاحيات إدارية.
  • تثبيت 7-zip – يستخدم هذا البرنامج التعليمي 7-zip 23.01، وهي أحدث نسخة في وقت الكتابة.

فك رموز خطأ “مسار الوجهة طويل جدًا”

هذه الرسالة الغامضة “مسار الوجهة طويل جدًا”، مثل الرسالة أدناه، تظهر كثيرًا بسبب الحد الأقصى لـ مسار MAX_PATH، وهو قيد تاريخي متأصل في نظام ملفات ويندوز. يتم تعيين الحد الأقصى لـ MAX_PATH عند 260 حرفًا، وقد كانت تحديًا مستمرًا للمستخدمين الذين يتعاملون مع مجلدات متداخلة بشكل عميق وهياكل مجلدات معقدة وأسماء ملفات طويلة.

Demonstrating the “Destination Path Too Long” error

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

تقليل طول مسار الملف عن طريق إعادة تسمية المجلد الأصلي

تخيل أن جهاز الكمبيوتر الخاص بك يقرر فجأة أن يتخذ منهجية شكسبير الداخلية ويعلن “الانتقال أو عدم الانتقال، هذا هو السؤال”. ولكن بجدية، إذا كنت تفكر في هذه المشكلة في نظام ويندوز، فإن أحد الحلول الأساسية هو إعادة تسمية المجلد الأصلي.

لنفترض أن لديك مجلد (يحتوي على ملفات مهمة) بأسم طويل ترغب في نقله أو نسخه إلى موقع آخر. ستساعد إعادة تسمية المجلد الأصلي على تجنب خطأ “مسار الوجهة طويل جدًا”.

لرؤية كيف يعمل تقليل طول مسار الملف، اتبع هذه الخطوات:

1. اعثر على المجلد ذو المسار الطويل، كما هو موضح أدناه، حيث يكون اسم المجلد مجموعة من الأحرف والأرقام العشوائية.

واحدة من العوامل الرئيسية وراء هذه الرسالة الغامضة هي الحد الأقصى لطول المسار (MAX_PATH) (260 حرفًا) المفروض من قِبَل نظام التشغيل Windows. يهدف هذا الحد إلى الحفاظ على التوافق بين التطبيقات والأنظمة المختلفة.

Locating the folder with a long name

2. قم بإعادة تسمية اسم المجلد بواحد أقصر (مثل Backup-01).

Renaming the folder

3. الآن، قم بنسخ أو نقل المجلد المعاد تسميته إلى الموقع المفضل لديك وتحقق مما إذا كنت لا تزال تحصل على رسالة “خطأ في المسار المقصود طويل جدًا”.

Copying or moving the renamed folder to a different location

القيام بعمليات الملفات على مسارات الملفات الطويلة باستخدام 7-zip

إذا لم يكن تغيير اسم المجلد أو الملف أمرًا حاسمًا، فيمكنك حلاً سريعًا بتغيير اسمهما، وذلك لتجنب خطأ “مسار الوجهة طويل جدًا”.

ولكن إذا كان الحفاظ على الأسماء الحالية أمرًا أساسيًا، فهل هناك نهج قابل للتطبيق دون تنشيط الخطأ؟ نعم، من خلال الاستفادة من 7-zip، أداة قوية لضغط وأرشفة الملفات.

لإجراء عمليات الملفات على مسارات الملفات الطويلة باستخدام 7-zip، قم بإتمام الخطوات التالية:

1. قم بتشغيل مدير ملفات 7-zip من قائمة “البدء” أو الاختصار على سطح المكتب.

2. بعد ذلك، قم بتحديد الملف أو المجلد المستهدف وانقر بزر الماوس الأيمن عليه واختر عملية ملف من قائمة السياق. ولكن في هذا المثال، قم بنسخ الملف (نسخ إلى) إلى موقع آخر.

لاحظ أن الملف النصي لديه مسار طويل للغاية.

Locating the target file or folder in 7-zip

3. استعرض موقع وجهة الملف في نافذة الحوار، وانقر فوق “موافق” لتأكيد نسخ الملف.

يتجاوز 7-zip القيود المفروضة على طول مسارات Win32API ، مما يتيح لك أداء عمليات ملف على الملفات والمجلدات.

Setting the file’s destination

4. أخيرًا ، انتقل إلى الموقع المستهدف وتحقق من وجود الملف الذي قمت بنسخه.

تؤكد هذه النتيجة أنك قمت بنسخ الملف بنجاح ، بتجاوز حد الطول الأقصى للمسار من خلال 7-zip.

Verifying the file copied via 7-zip exists in the target location

تمكين دعم مسارات Win32 الطويلة على نظام التشغيل Windows

ربما تفضل الاعتماد على حلول قائمة على نظام التشغيل Windows بدلاً من الاعتماد على أدوات الطرف الثالث مثل 7-zip عند التعامل مع مسارات ملف طويلة. إذا كنت كذلك ، فإن تمكين دعم مسارات Win32 الطويلة على نظام التشغيل Windows يوفر نهجًا متكاملًا ومدمجًا للتغلب على الخطأ المعروف “المسار الوجهة طويل جدًا”.

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

استمر في القراءة واستكشاف طرق مختلفة لتمكين دعم مسارات Win32 الطويلة.

استخدام محرر التسجيل

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

لتمكين دعم مسارات Win32 الطويلة عبر محرر التسجيل ، قم باتباع الخطوات التالية:

1. افتح مربع الرمز (Win + R) ، اكتب regedit ، واضغط على Enter (أو انقر فوق موافق) لفتح محرر التسجيل.

Launching the Registry Editor via the Run dialog

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

2. قم بالانتقال إلى المفتاح التالي أو قم بلصق المفتاح في شريط العناوين للوصول إلى إعدادات وتكوينات مختلفة تتعلق بسلوك نظام الملفات.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
Accessing settings and configurations related to the file system behavior

3. ابحث عن وقم بالنقر المزدوج على إدخال LongPathsEnabled (الجزء الأيمن من النافذة) للوصول إلى البيانات المرتبطة به وتغيير قيمة البيانات من 0 إلى 1.

يخبر هذا الإدخال النظام بتمكين دعم المسارات الطويلة لـ Win32.

Enabling the Win32 long path support via the LongPathEnabled entry in Registry Editor

4. اغلق محرر التسجيل وأعد تشغيل نظام Windows الخاص بك لتطبيق التغييرات.

5. الآن، قم بإجراء عمليات الملفات مثل نسخ أو نقل الملفات أو المجلدات ذات مسارات الملفات الطويلة لمعرفة ما إذا كنت تستطيع تجاوز خطأ “المسار الهدف طويل جدًا”.

? للأسف، في وقت كتابة هذا النص، لا يزال مستكشف الملفات الافتراضي في Windows 10 و Windows Server 2022 يواجه قيودًا في دعم المسارات الطويلة NTFS. إذا كنت تعمل عادةً على مسارات الملفات الطويلة في سير عملك، فهناك مديري ملفات من طرف ثالث مجانيين يمكنك الاعتماد عليها، مثل OneCommander و TotalCommander.

استخدام محرر سياسات المجموعة (GPE)

استكشاف التفاصيل الدقيقة لتمكين دعم مسارات Win32 الطويلة يكشف عن مجموعة واسعة من الطرق، ومن بين أكثرها تطورًا هو استغلال GPE. فكر في GPE كأداة مخصصة لتعديل وظائف Windows بدقة.

عند تمكين نظامك من قدرات المسار الموسعة، يحتل GPE مكانة مركزية، ويوفر طريقة مركزية ونظامية.

لتمكين دعم مسارات Win32 الطويلة عبر GPE، قم باتباع الخطوات التالية:

1. افتح GPE (gpedit.msc) عن طريق نافذة تشغيل كما هو موضح أدناه.

يعد GPE إضافة MMC (Microsoft Management Console) توفر واجهة رسومية لإدارة إعدادات السياسة في Windows.

Opening the GPE via the Run dialog

2. بعد ذلك، قم بتمكين دعم مسارات Win32 الطويلة في نافذة GPE الرئيسية على النحو التالي:

  • انتقل إلى تكوين الكمبيوترالقوالب الإداريةالنظامنظام الملفات في شجرة الكونسول (الجزء الأيسر). يتيح لك ذلك الوصول إلى إعدادات السياسة المتعلقة بنظام الملفات.
  • ابحث عن وانقر مرتين على إعداد السياسة تمكين مسارات Win32 الطويلة (لوحة الجزء الأيمن). يظهر مربع حوار التكوين لإعداد السياسة المحددة (الخطوة الثالثة).
Accessing the configuration dialog for the “Enable Win32 long paths” policy setting

3. فيما بعد، اختر الخيار تمكين في مربع حوار التكوين وانقر على موافق لتمكين دعم مسارات Win32 الطويلة لنظام Windows.

Enabling the Win32 long paths support for Windows via GPE

4. الآن، قم بنسخ أو نقل الملفات أو المجلدات ذات المسارات الطويلة لاختبار دعم مسارات Win32 الطويلة.

إنشاء روابط رمزية للمسارات الطويلة

بالإضافة إلى تمكين دعم مسارات الملفات الطويلة في Win32 ، هناك خيار آخر لتجاوز قيود مسارات الملفات الطويلة وهو إنشاء اختصارات رمزية رقمية لك.

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

لإنشاء اختصارات رمزية لمسارات طويلة ، قم بإجراء الخطوات التالية:

1. قم بتشغيل موجه الأوامر كمسؤول ، وقم بتنفيذ الأمر mklink التالي لإنشاء اختصار مجلد (/D) في مسار الوجهة المحدد (أي C:\folder-link).

يشير الاختصار الرمزي إلى المجلد الخاص بك بمسار طويل جدًا. بالتالي ، قم بتعويض <symlink> بمسار الوجهة و <long-path> بالمسار الطويل الخاص بك.

mklink /D <symlink> <long-path>
Creating a symbolic link for a folder

2. بعد ذلك ، قم بتشغيل الأمر dir التالي للتحقق مما إذا كان الاختصار الرمزي للمجلد الخاص بك موجودًا.

dir <symlink>
Checking if the directory symbolic link exists

3. داخل مجلد المسار الطويل الخاص بك ، قم بإنشاء ملف نصي بالاسم symlink.txt ، والذي يعمل كدليل على عمل الاختصار الرمزي الخاص بك.

? يستخدم هذا البرنامج التعليمي مدير ملفات طرف ثالث يسمى Directory Opus ، وهو مشابه لـ XYplorer. كلاهما مديري ملفات غنيين بالميزات مصممين لتعزيز تجربة إدارة الملفات على نظام التشغيل Windows.

Creating a text file to serve as proof that the symbolic link works

4. في النهاية ، قم بتحديد وتصفح داخل رابط المجلد الرمزي الذي تم إنشاؤه حديثًا في مدير الملفات الخاص بك للتأكد من أنه يشير إلى المجلد ذو المسار الطويل الخاص بك.

الآن ، يمكنك نسخ أو نقل الملفات إلى المجلد المستهدف ، دون الالتفات إلى حد MAX_PATH.

Verifying the directory symbolic link points to the long path folder

استخدام أمر Robocopy لعمليات الملفات

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

لأداء عمليات الملفات عبر أمر Robocopy ، قم باتباع هذه الخطوات:

1. افتح PowerShell كمسؤول وقم بتنفيذ الأوامر التالية لتعريف المتغيرات التي تحمل مسارات المصدر والوجهة لملف الهدف الخاص بك.

هذه الأوامر ليست لها أي إخراج ، ولكن تأكد من استبدال أماكن الحجة <source> و <destination> وفقًا لذلك.

$srcPath=<source>
$destPath=<destination>
Declaring variables to hold the target file’s source and destination paths

2. بعد ذلك، قم بتشغيل الأمر robocopy أدناه لنسخ ملف symlink.txt وجميع معلوماته (/COPYALL) من المصدر ($srcPath) إلى الوجهة ($destPath).

يضمن هذا الأمر نسخ الملف المستهدف دون الانتظار (/W:0) أو إعادة المحاولة (/R:0) في حالة حدوث أخطاء أثناء عملية النسخ.

robocopy $srcPath $destPath symlink.txt /COPYALL /W:0 /R:0

? ربما ترغب في نقل الملف إلى موقع مختلف. إذا كان الأمر كذلك، قم بتعويض /COPYALL بالخيار /MOVE كما هو موضح أدناه. يخبر هذا الخيار robocopy بتنفيذ عملية “قص ولصق”.

robocopy $srcPath $destPath symlink.txt /MOVE /W:0 /R:0

المخرجات أدناه تؤكد أنك قمت بنسخ ملف واحد بنجاح بغض النظر عن المسار الطويل.

Copying a file via the robocopy command bypassing the MAX_PATH limit

3. الآن، قم بتشغيل سطر الأوامر Get-ChildItem أدناه للتحقق من وجود الملف المنسوخ في الموقع المحدد الخاص بك.

Get-ChildItem $destPath
Verifying the copied file exists in the specified location

استغلال معلمة -LiteralPath في سطر الأوامر PowerShell

لقد استغليت بالفعل قوة Robocopy للتنقل في مسارات إدارة الملفات المعقدة. ومع ذلك، يظل هناك سؤال معلق: كيف يمكنك تحسين سيطرتك ودقتك في التعامل مع عمليات الملفات؟

تقدم PowerShell سطر أوامر مع معلمات، مثل -LiteralPath، التي تمكنك من التغلب على تعقيدات إدارة الملفات.

لتنفيذ عمليات الملفات باستخدام معلمة -LiteralPath، قم بتنفيذ ما يلي:

1. افتح PowerShell كمسؤول وقم بتنفيذ الأوامر التالية لتعريف المتغيرات التي ستحتوي على مسار الملف المصدر ومسارات الوجهة.

تأكد من استبدال <source\symlink.txt> بالمسار الكامل للملف الخاص بك واستبدال <destination> بمسار الوجهة المفضل بالنسبة لك.

$srcPath=<source\symlink.txt>
$destPath=<destination>

2. بعد ذلك ، قم بتشغيل الأمر Copy-Item أدناه لنسخ ملف symlink.txt إلى المسار المحدد ($destPath). تمكنك -LiteralPath من تحديد مسار الملف بطريقة حرفية دون أي تفسير لأحرف البدل.

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

Copy-Item -LiteralPath $srcPath -Destination $destPath

? عند الضرورة ، يعمل -LiteralPath أيضًا مع الأوامر الأخرى لعمليات الملفات ، مثل Move-Item ، Rename-Item ، و Remove-Item.

3. أخيرًا ، قم بتشغيل الأمر Get-ChildItem أدناه لعرض الملفات والمجلدات داخل مسار الوجهة ($destPath).

Get-ChildItem $destPath
Verifying the file has been copied successfully to the destination path

? في حين أن -LiteralPath يعمل بشكل ممتاز كما هو متوقع ، يتم استخدام هذا المعلم بشكل أساسي لتحديد المسار المصدر أو اسم الملف. ولكن في سيناريوهات البرمجة ، يضمن -LiteralPath أن يعمل البرنامج النصي على المسارات المحددة بالضبط ، مما يقلل من خطر الأخطاء نتيجة لتفسيرات الأحرف غير المتوقعة.

استخراج ملفات الأرشيف عبر الأمر Expand-Archive

لنفترض أنك قمت بتنزيل ملف أرشيف (ZIP) باسم طويل جدًا ترغب في استخراجه دون تغيير الاسم. في مثل هذه الحالات ، يمكن أن يكون أمر Expand-Archive في PowerShell حلاً عمليًا.

يتيح لك أمر Expand-Archive فك ضغط الملفات من الأرشيف مع توفير مرونة في التعامل مع المسارات الطويلة.

لكي تستخرج ملفات الأرشيف باستخدام أمر “Expand-Archive” ، قم باتباع الخطوات التالية:

1. قم بتنفيذ الأوامر التالية في PowerShell (كمسؤول) لتعريف المتغيرات التي ستحمل المسار الكامل لملف الأرشيف الخاص بك والمسار الوجهة.

$srcPath=<source\file.zip>
$destPath=<destination>

2. بعد تعريف المتغيرات ، قم بتشغيل الأمر “Expand-Archive” أدناه ، الذي لا يوفر أي إخراج ولكنه يستخرج ملف الأرشيف إلى المسار المحدد من قبلك.

Expand-Archive -Path $srcPath -DestinationPath $destPath

3. في النهاية ، قم بتشغيل الأمر “Get-ChildItem” أدناه لعرض قائمة الملفات والمجلدات داخل المسار الوجهة ($destPath).

Get-ChildItem $destPath

لاحظ وجود عنصرين في الإخراج: ملف الأرشيف (النص باللون الأحمر) والمجلد المستخرج (مميز باللون الأزرق). يؤكد هذا الإخراج أنك قمت بنجاح بإستخراج ملف الأرشيف الخاص بك دون تسبب في خطأ “مسار الوجهة طويل جدًا”.

Verifying the contents of the destination path

الاستنتاج

طوال هذه الرحلة ، قمت بتغطية مجموعة من الاستراتيجيات للتغلب على خطأ “مسار الوجهة طويل جدًا” المشهور على نظام التشغيل Windows. لقد استكشفت تقنيات مختلفة ، بدءًا من إعادة تسمية المجلدات الأصلية إلى قدرة 7-zip وتمكين دعم مسارات Win32 الطويلة.

قدمت الروابط الرمزية حلا ذكياً، وأظهرت Robocopy العملاقة براعتها في عمليات الملفات الفعالة. استعرضتك لـ PowerShell أبرز فائدة للمعلمة -LiteralPath وأمر Expand-Archive. كل هذه الأدوات تثبت قيمتها في استخراج الملفات بدون الوقوع تحت قيود طول المسار.

الآن، لماذا لا تفكر في دمج هذه الاستراتيجيات لإنشاء حلول قوية تتناسب مع تحدياتك الخاصة؟ قم بتجربة كتابة سكربتات في PowerShell، مع دمج الروابط الرمزية حيثما يلزم، وتنقيح عمليات الملفات الخاصة بك باستخدام Robocopy.

تذكر، المفتاح ليس فقط في حل المشكلة الفورية، ولكن أيضا في فهم كيف يمكن لهذه الأساليب أن تعمل بتناغم لمواجهة مجموعة متنوعة من التحديات المتعلقة بالملفات.

Source:
https://adamtheautomator.com/destination-path-too-long/