سؤال ويندوز غير قادر على حذف. ملف


لدي حاليا ملف على جذر القرص الصلب الخارجي اسمه ببساطة ._.، والتي أعتقد أنها أضيفت إلى القرص الصلب بعد استخدامه على جهاز MacBook منذ فترة. أحاول حذف هذا الملف على جهاز Windows 10 الخاص بي ؛ ومع ذلك يستمر Windows في المطالبة بعدم العثور على الملف.

Error message from Windows Explorer

حاولت أيضًا حذف الملف من خلال موجه أوامر تمت ترقيته ؛ ومع ذلك يتم إرجاع نفس الرسالة.

Error message from elevated command prompt

هل هناك أي طريقة يمكنني حذف هذا الملف من القرص الصلب من خلال ويندوز؟


91
2017-11-08 04:14


الأصل


@ rr- البؤس الذي يمكنك القيام به مع أسماء ملفات يونكس يميل إلى أن يكون أكبر من ذلك بكثير. : 3 - Martijn
يظهر موجه الأوامر شيئًا غريبًا. انت فعلت find "._." لكنه ترك الاقتباس ل del ._.. هل جربت del "._."؟ - jpmc26
ظاهرة مثيرة للاهتمام. لا سيما مدى صعوبة حذفها. هل أنت متأكد من أن الملف تم إنشاؤه بشكل قانوني؟ (تسمية ذلك يبدو غريبا جدا حتى بالنسبة لماك) - Thomas
الجزء المفضل لدي هو تعبير الملف عن محاولات حذفه. - Workman
"._." لا يمكنك حذف هذا لأن الكوالا هي أنواع محمية.


الأجوبة:


قم بتشغيل الأمر التالي (قد يتطلب امتيازات مرتفعة / موجه أوامر مفتوح كمسؤول):

del "\\?\F:\._."

حول ال \\?\ اختصار:

للملف I / O ، "\\?\"البادئة إلى سلسلة مسار يخبر ويندوز   واجهات برمجة التطبيقات لتعطيل جميع تحليل السلسلة وإرسال السلسلة التالية   مباشرة إلى نظام الملفات.

...

لأنه يعمل على إيقاف التوسعة التلقائية لسلسلة المسار ،   "\\?\"البادئة كما يسمح باستخدام".."و"." في الطريق   أسماء ، والتي يمكن أن تكون مفيدة إذا كنت تحاول تنفيذ العمليات   على ملف مع محددات المسار النسبي المحجوزة بطريقة أخرى مثل   جزء من المسار المؤهل بالكامل.

لاحظ أنه لا يمكنك استخدام "\\?\"البادئة مع مسار نسبي.

مثال:

==> set prog>"\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."
08.11.2015  13:25               132 ._.

==> type "D:\bat\Unusual Names\._."
The system cannot find the file specified.

==> type "\\?\D:\bat\Unusual Names\._."
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

==> del "D:\bat\Unusual Names\._."
Could Not Find D:\bat\Unusual Names\._.

==> del "\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."

==>

143
2017-11-08 07:39



عملت مثل بطل ، شكرا! - Mike Koch
من الممكن استخدام هذه البادئة مع عنوان URL ، وهو a start أمر؟ - Steven Penny
... هل يمكن استخدام هذا لتجاوز حدود الطول؟ (على سبيل المثال ، احذف node_modules دليل.) - jpmc26
@ jpmc26 وفقًا لـ MSDN (راجع الرابط المقدم في إجابتي) ، نعم. ومع ذلك ، التقيت سيناريوهات فيها \\?\  البادئة المستخدمة في del أو rmdir الأوامر لم يساعد. يتحول الى 7-zip مدير الملفات. - JosefZ
@ jpmc26: يمكن أن يتجاوز بعض حدود الطول. بشكل أساسي ، يحتوي المسار الموسع على حد طوله 32 كيلوبايت. لكن معظم الطرق مثل C:\Windows أو .. لا يتم توسيعها ، وتلك التي لها حد طول يبلغ 260 فقط. يتم فرض هذا الحد 260 في العديد من الأماكن ؛ للأسف عدد قليل من هذه الأماكن يطبق هذا الحد بشكل غير صحيح أيضًا على المسارات "\\". - MSalters


على الرغم من الإجابة على السؤال بالفعل ، فما زلت أرغب في تقديم حل بديل محتمل: استخدام "الأسماء القصيرة" القديمة (التي يمكنك عرضها مع الخيار "/ x" إلى الأمر dir) قد يسمح لك أيضًا الحصول على قبضتك على الملفات ذات الأسماء "غير التقليدية" التي لا يمكنك التعامل معها بطريقة أخرى:

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
11.11.2015  16:31                 7 ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>dir /x
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>                       .
11.11.2015  16:31    <DIR>                       ..
11.11.2015  16:31                 7 _3E35~1      ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>del _3e35~1

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  44.966.129.664 bytes free

24
2017-11-11 15:38





التثبت 7-الرمز البريديوفتحه واستخدام قائمة ملفه لإعادة تسمية الملف إلى اسم طبيعي (على سبيل المثال aaa) ومن ثم يمكنك حذفها. وجدت في هذه بريد.

لقد اختبرت هذا على نظام التشغيل Windows XP الذي يعمل في جهاز VM. لقد استخدمت لينكس لإنشاء ملف يسمى ._. على دليل مشترك.


20
2017-11-08 06:08





فقط قم بتشغيل مستكشف windows الخاص بك ، انتقل إلى الملف. إعادة تسمية الملف مثل: filename.txt الآن يمكنك حذفها. إذا لم تكن قادرًا على القيام بذلك ، فأنت بحاجة إلى التأكد من أن لديك حقوق المسؤول.

(راجع سبب عدم إمكانية حذفه لأن اسم الملف لا يوجد به اسم فعليًا وأن الامتداد غير صالح. اسم الملف هو "." والامتداد هو "__." وهو غير مسموح به.)


-4
2017-11-08 08:37



@ The_IT_Guy_You_Don't_Like لدي فضول ، أين ذكر OP ذلك؟ - muru
أري كليب ، أعيد كلامي. لا بد لي من قراءتها في سؤال آخر مماثل - pun


يمكنك حذف الملف من قبل 1) احصل على الملكية 2) منح المسؤولين (أنت) الإذن الكامل 3) افعل ما تريد مع الملف

ارتفاع CMD موجه

takeown / f المسار الكامل إلى ملف Undeletable (يجب أن يكون العنصر الأخير ملف undeletable)

icacls المسار الكامل لمسؤولي ملف / منح Undeletable: f

حذف ملف


-8
2017-11-08 06:04



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