it-swarm.asia

كيفية حذف ملف في ويندوز مع اسم ملف طويل جدا؟

لدى زوجتي العديد من الملفات والمجلدات التي انتهت بطريقة ما إلى وجود أسماء ملفات تسببت في أن تكون غير قابلة للتشكيل (لا يمكن حذفها) بالوسائل العادية أو عبر سطر الأوامر. أعتقد أن أسماء الملفات طويلة جدًا نظرًا لعمق هياكل المجلد. لا أحد يعرف فائدة جيدة لتنظيف ملفات مثل هذا؟

200
user3048

عندما تريد حذف دليل بالكامل ويحتوي على مسارات طويلة ، robocopy يقوم بعمل جيد جدًا:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

يعمل هذا لأن robocopy داخليًا يستخدم إصدارات Unicode-علم وظائف Win32 ، مع البادئة \\?\ لمسارات الملفات ؛ هذه الوظائف لها حد من 2¹⁶-1 (32،767) حرفًا بدلاً من 259.

قد تحتاج إلى متابعة هذه العملية أكثر من مرة للتخلص من جميع الملفات.

421
Benoit

من موجه الأوامر:

dir /X

سيقوم هذا بسرد الملفات/المجلدات بتنسيق الاسم المختصر. ثم استخدم الاسم المختصر كما هو مكتوب تمامًا لحذف الملف:

del LONGF~1.txt
90
Will Eddins

أنا أتقدم في طريقي إلى المسار ، وأعيد تسمية كل مجلد أصل متتالي إلى "1" ومحاولة الحذف. أنت تقصر المسار بشكل فعال في كل مرة ولم أضطر أبدًا إلى العمل في أكثر من 4 أو 5 أدلة حتى أتمكن أخيرًا من حذف بنية الدليل بالكامل (والتي قد تكون أو لا تكون ما تريد). يمكنك القيام بذلك من آخر مجلد فرعي وكذلك العمل لأعلى أو لأسفل.

53
joeqwerty

في بعض البرامج ، بما في ذلك Command Prompt (cmd.exe) ، يمكنك تجاوز حد طول الملف عن طريق بادئة المسار الكامل بـ \\.\ مثل هذا:

\\.\C:\بعض الدليل\دليل آخر\ملف مع اسم طويل
13
grawity

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

بحيث يكون لديك c:\some\long\path ...\و\foo\bar\folder\oldfiles\myoldfile.txt.

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

انتقل الآن إلى المجلد المشترك أو أحد المجلدات داخله وشاركه ، أو استخدم سطر الأوامر كما يلي. افترض أنك قمت بمشاركة المجلد "foo" باسم "fooshare" ، ثم يمكنك القيام به

Net Use x: \\mycomputername\fooshare\bar\folders /persistent:no

ويشير محرك الأقراص X: الآن مباشرةً إلى مجلد "المجلدات" داخل تلك المشاركة ، لذلك أصبحت "x:\oldfiles\myoldfile.txt" قصيرة جدًا.

(تعني كلمة "/ persistent: no" أن هذا لن ينجو من عملية إعادة التشغيل التالية ويرتبك فيما بعد. لا تنس إلغاء مشاركة مجلدك عند الانتهاء.)

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

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

13
AdamV

إن أبسط طريقة وجدت هي الإقلاع من قرص مضغوط أوبونتو مباشر.

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

9
Col

إعادة تسمية دليل قص/لصق الملف في مكان آخر ، ثم احذفه. يعمل هنا.

أو فقط من موجه الأوامر ، إذا كنت لا ترغب في المرور بالمشكلة.

5
Rook

ربما لا تكون أفضل طريقة وأنا مهتم بمعرفة ما يأتي به الآخرون -

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

أيضًا ، فعلت Google نيابةً عنك ووجدت هذا - DelinvFile يبدو جيدًا ولكن لا يمكن أن يشهد عليه.

تحرير - تحذير ، رأيت للتو ما سبق ليست سوى محاكمة - ربما ليست جيدة كما اعتقدت لأول مرة!

1
William Hilsum