Windows Silemiyor. Dosya


91

Şu anda ._.bir süre önce MacBook'umda kullandıktan sonra sabit diskime eklendiğini tahmin ettiğim harici sabit sürücümün kökünde bir dosya var . Windows 10 makinemde bu dosyayı silmeye çalışıyorum; ancak Windows, dosyanın bulunamadığını iddia etmeye devam ediyor.

Windows Gezgini'nden hata mesajı

Ayrıca yükseltilmiş bir komut istemi ile dosyayı silmeyi denedim; ancak aynı mesaj iade edilir.

Yükseltilmiş komut isteminden hata mesajı

Bu dosyayı Windows üzerinden sabit diskimden silmemin bir yolu var mı?


7
@ rr- unix dosya isimleri ile yapabileceğiniz sefalet çok daha büyük olma eğilimindedir. : 3
Martijn

5
Komut isteminde garip bir şey var. Yaptın, find "._."ancak teklifleri bıraktın del ._.. Denedin del "._."mi
jpmc26

1
ilginç bir fenomen. Özellikle silmek ne kadar zor. Dosyanın yasal olarak oluşturulduğundan emin misin? (isimlendirmesi bir mac için bile oldukça garip geliyor)
Thomas

30
Favori bölümüm, dosyayı silme girişimlerinizin ifadesidir.
İşçi

8
"._."Koalas korumalı bir tür olduğundan bunu silemezsiniz.

Yanıtlar:


146

Aşağıdaki komutu çalıştırın (yükseltilmiş ayrıcalıklar gerektirebilir / yönetici olarak açık komut istemi gerekebilir):

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

Hakkında \\?\önek :

G / Ç dosyası \\?\için, bir yol dizesinin öneki " " öneki, Windows API'lerine tüm dize ayrıştırmasını devre dışı bırakmasını ve onu izleyen dizeyi doğrudan dosya sistemine göndermesini bildirir.

...

Yol dizgisinin otomatik olarak genişlemesini kapattığı için, " \\?\" öneki aynı zamanda, bu ayrılmış yollarla ilgili göreceli yollarla bir dosya üzerinde işlem yapmaya çalışıyorsanız, yol adlarında " .." ve " ." kullanılmasına da izin verir. tam yolun bir parçası olarak belirticiler.

" \\?\" Önekini göreceli bir yolla kullanamayacağınızı unutmayın .

Örnek :

==> 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 "._."

==>

Bir URL'ye, al bir o önek kullanmak mümkündür startkomut?
Steven Penny

Bunu bir URL ile kullanmazsınız. Start komutundan bir URL çalıştırmak istiyorsanız çift tırnak işareti kullanırsınız.
Nelson

1
... Bu uzunluk sınırlarını atlamak için kullanılabilir mi? (Örneğin, bir node_modulesdizini silin .)
jpmc26

1
@ jpmc26 MSDN'ye göre (cevabımda verilen bağlantıya bakın), evet. Ancak, \\?\ kullanılan önek delveya rmdirkomutların yardımcı olamadığı senaryolarla karşılaştım . 7-zipDosya yöneticisine döndü .
JosefZ

2
@ jpmc26: Bazı uzunluk limitlerini atlayabilir. Temel olarak, genişletilmiş bir yolun uzunluğu 32K'dır. Ancak, çoğu yol gibi C:\Windowsya ..da genişlemiyor ve bunlar sadece 260'lık bir uzunluk sınırına sahip. Bu 260 limit birçok yerde uygulanıyor; Maalesef bu yerlerden birkaçı bu limiti yanlış bir şekilde \ \?
MSalters

24

Soru zaten cevaplanmış olsa da, alternatif bir çözüm önermek istiyorum: eski "kısa isimleri" (dir komutuna "/ x" seçeneği ile görüntüleyebileceğiniz) kullanmak Aksi takdirde kullanamayacağınız "funky" isimleri olan dosyaları kontrol edin:

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

20

7-zip'i kurun , açın ve dosyayı normal bir adla (örneğin aaa) yeniden adlandırmak için dosya menüsünü kullanın ve sonra silebilirsiniz. Bu yayında bulundu .

Bunu bir VM'de çalışan Windows XP'de test ettim. Linux'u ._.paylaşılan bir dizinde adı verilen bir dosya oluşturmak için kullandım .


-4

Windows gezgininizin çalışmasını sağlayın, dosyaya gidin. Dosyayı şu şekilde yeniden adlandırın: filename.txt Şimdi silebilirsiniz. Bunu yapamıyorsanız, yönetici haklarına sahip olduğunuzdan emin olmanız gerekir.

(btw'yi silememenizin nedeni, dosya adının aslında adı yoktur ve uzantı geçerli değildir. Dosya adı "." ve uzantıya izin verilmeyen "__." dır.)


1
@ The_IT_Guy_You_Don't_Like merak ediyorum, OP nerede bahsetti?
muru

@Arie Klep, sözlerimi geri alıyorum. Başka benzer soru daha okumuştur
pun

-8

Dosyayı 1 ile silebilirsiniz. 1) Sahiplik edin 2) yöneticilere (siz) tam izin verin 3) Dosyayla ne istiyorsanız yapın

Yükseltilmiş CMD istemi

takeown / f Silinemez Dosyaya Tam Yol (son öğe silinemez dosya olmalı)

icacls Bildirilemeyen dosya / hibe yöneticilerine Tam Yol: f

Dosyayı sil


26
Sorun, Windows'un dosyaya erişememesi, uygun olmayan dosya adı nedeniyle görünmüyor gibi görünüyor, bu yüzden bu cevap işe yararsa çok şaşırırdım.
Scott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.