Uzun dosya ve klasör isimleri
\\?\------------------------------------DevoCatoR------------------------------------\\?\
NTFS'de C:\Users\DevoCatoR\Backups\Myphone\Sdcard\DCIM\Camera\2016\05\02\Panaroma\...... diye devam eden bir YOL 32.000 karaktere kadar desteklenmektedir.
Dosya isimleri ise 2016_05_02_Panaroma_31074519831723879039108239080123.jpg şeklinde 255 karaktere kadar desteklenmektedir.
Hal böyle olunca komut satırında bu dosyalarla uğraşmak çok zahmetlidir. Çok karşılaşılmayan bu durum örneğin silinmeyen bir klasörü veya dosyayı komut satırıyla silmeye çalıştığınızda karşınıza çıkabilir. Genellikle "autorun" vb. virusler kolay silinememesi için bu tür uzun dosya-klasör isimleri oluştururlar.
Windows'un kerneli dizin adlarını 255-260 karaktere kadar destekliyor.
Windows Explorer üzerinde ise yalnızca aşağıdaki örnekteki gibi yalnızca 216 karakterli dosya veya klasör ismini kabul ediyor.
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456Komut satırında dosya ismini değiştirmeye çalışınca klasör ismi aşağıdaki gibi en çok 228 karaktere çıkabiliyor.
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456asdfasdfasXXBu klasörü Winrar yardımıyla sıkıştırınca dosya ismi aşağıdaki gibi 232 karaktere çıkıyor fakat bu sefer dosyaya sağ tıklayınca sağtık menüsü eksik geliyor ve F2 kısayol tuşu işlevini yerine getirmiyor yani dosya ismini değiştirmeye hiçbir şekilde izin vermiyor.
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456asdfasdfasXX.rarDosya ismi komut satırında REN ve SUBST komutları ile üst üste değiştirilerek 255 karaktere kadar çıkarılabiliyor.
x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901asdasdasdasdasdasdasdasdasdasdasdasdasdMMMMMMMMVVVVVVVVBBBBBCCCOrtaya çıkan dosyayı silmeye çalıştığınızda "Kaynak dosya adı sistemin desteklediğinden büyük." hatasıyla karşılaşıyorsunuz ve sistem dosyayı silmenize izin vermiyor.
Bu kadar uzun isimli bir dosyayı silmek için komut satırında subst komutunu kullanabilirsiniz. Örneğin;
klasörün bulunduğu dizini subst ile kısaltıp komutları CMD'ye kabul ettirebilirsiniz:
subst x: "C:\Uses\DevoCatoR\Desktop\Documents\"
Bu kod ile "C:\Uses\DevoCatoR\Desktop\Documents\" dizinini yalnızca "x:"kısaltmasını kullanarak belirtebiliriz.
Dosyayı silerken x:\ kısayolunu kullandığınızda dosyanın silindiğini göreceksiniz.
del "x:x12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901asdasdasdasdasdasdasdasdasdasdasdasdasdMMMMMMMMVVVVVVVVBBBBBCCC"SUBST ile oluşturduğunuz kısayolu kaldırmak için şu kodu kullanabilirsiniz(/D = delete):
subst /D x:
\\?\------------------------------------DevoCatoR------------------------------------\\?\
Yorumlar
Yorum Gönder