Windows bunu yapmanıza izin vermiyorsa, uzun adı olan bir dosya veya klasör nasıl silinir? Uzun isimli bir dosya silinmezse ve dosya sisteminin bu kadar uzun isimleri desteklemediğine dair bir hata ortaya çıkarsa? Uzun adlar klasörü silinmez.

Başlığın uzun olduğu ortaya çıktı ancak burada anlatılacak olan sorunun özünü gösteriyor. Son zamanlarda pek de iyi olmayan bir durumla karşılaştım. Sabit sürücüyü sıralayıp gereksiz şeylerden temizlerken dosyalardan birinin silinmediğini keşfettim ancak şu hata ortaya çıktı: “Dosya sistemi bu kadar uzun kaynak dosya adlarını desteklemiyor. Dosyayı yol uzunluğu daha kısa olan bir klasöre taşımayı deneyin veya daha kısa bir dosya adı belirleyip tekrar deneyin."

Dosyayı silemediğim gibi, adını daha kısa bir adla da değiştiremedim. Çoğu kişi için bu bir çıkmaz sokak gibi görünebilir çünkü dosyanın silinmediği ortaya çıktı.

Aslında sorun çok basit ve hızlı bir şekilde çözülebilir ve şimdi bunu çözmek için iki yöntem anlatacağım ve hangisini kullanacağınıza karar vermek size kalmış.

Kaynağa giden yol çok uzunsa ne yapmalı, böyle bir dosya nasıl silinir?

Uzun ad nedeniyle silinmeyen bir dosyanız varsa sorunu çözmek için birkaç seçenek vardır. Örneğin, bir dosya birkaç dizinde, örneğin 10-20 karakterlik adlara sahip beş veya hatta on klasörde iç içe yerleştirilmiştir, bu durumda dosyanın silinmemesinin nedeni bu olabilir. Gerçek şu ki Windows, adları 260 karakterden fazla olan dosyaları desteklemiyor. Bu limit aşılırsa yukarıda gösterdiğim hata ortaya çıkacaktır. Kendi adlarına sahip klasörlerin sayısı ve dosya adının toplamı 260 karakterden az olmalıdır. Sistemin bir özelliği de var; bu sınır aşılırsa klasörleri yeniden adlandırabiliriz. Bu, tüm klasörleri harf veya sayı gibi kısa bir adla yeniden adlandırmanız gerektiği anlamına gelir.


Bu sorun sadece bu kadar uzun bir isim verdiğiniz için ortaya çıkmayabilir. Bu, web sitesi dosyalarını sunucudan indirmeye ve bir şeyler yapmaya karar verdiğimde başıma geldi. Dosyalara artık ihtiyaç duyulmadığından, site dosyalarının bulunduğu dizinin tamamını sildim, ancak ortaya çıktığı gibi, çok uzun bir ada ve klasör adlarına sahip bir dosya içeriyordu ve bu, hepsini silmeme izin vermedi.

İkinci yöntem ilki başarısız olursa yardımcı olacaktır. Gerçek şu ki, uzun ada sahip bir dosyaya giden tüm klasörler yeniden adlandırılamaz ve aynı dosya sistemi hatası ortaya çıkar. Daha sonra silinemeyen dosyaya giden alt klasörlerden herhangi birini kullanarak bir sanal disk oluşturabilirsiniz. Şimdi size bunun nasıl yapılacağını göstereceğim.

Komut satırını açın. Bunu yapmak için Win+R kombinasyonuna basın ve komutu girin cmd. Tıklayabilirsiniz sağ tık Başlat menüsünde fareyi (veya Win+X tuş birleşimini) seçin ve oradaki komut satırını seçin.

Şimdi bizim için sanal disk oluşturacak bir komut yazıyorsunuz:

Başkaları tarafından kullanılmayan bir sürücü harfi seçmeniz gerekir. Sistem bölümü genellikle C olarak, ikinci bölüm ise D veya E olarak gösterilir, ardından başka birini seçin.

Klasörün yolu diskten belirtilmelidir. Bu sizin için zorsa, sanal disk görevi görecek klasörü açın ve yolu üstteki Explorer'da kopyalayın.

Komutum şuna benziyor:

Bilgisayarım'a gittiğimizde, orada ona atadığımız harfin bulunduğu bir disk görmelisiniz. Komut satırı. Böylece dosyanın yolu neredeyse yarı yarıya azalacak, bu da toplam karakter uzunluğunun 260 karakterden az olabileceği anlamına geliyor. Artık silinemeyenlerden kurtulmayı deneyebilirsiniz.


Bir sanal diski silmek için şu komutu girmeniz gerekir:

substDiskHarf/d

Total Commander'ı Kullanma

İnternette, silinemeyen dosyaları silmenize izin veren bir yöntem keşfettim. Tabi buradaki olumsuzluk bilgisayarınıza ek yazılım yüklemeniz gerekecek ve bunu herkes yapmak istemeyecektir. Her durumda, birisi kullanmak isterse diye bu yöntemi burada bırakacağım.

Programı indirip yükleyin. Haydi sekmeye gidelim "Dosya" bölüme tıklayın "Nitelikleri değiştir". Tüm özelliklerden onay işaretlerini kaldırdığımız bir pencere açılır. Üstteki öğenin yanında onay işareti yoksa "Dizin içeriğini işle"- seçmek. Şimdi aynı programdan uzun isimli bir dosyayı silmeye çalışıyoruz.


7-Zip arşivleyicisini kullanıyoruz

Bu görev için 7-Zip arşivleyiciye ihtiyacımız olacak. Başlangıç ​​dizinine sağ tıklayın ve fareyi bölümün üzerine getirin "7-Zip" ve öğeyi seçin "Arşive Ekle".

Yalnızca bir kutuyu işaretlemeniz gereken bir pencere açılır. "Dosyaları sıkıştırdıktan sonra sil". Daha sonra Tamam'ı tıklayın.

Masaüstünde tüm bunların bir arşivi oluşturulur ve uzun dosyaların bulunduğu klasörler kolayca silinir. Arşivin kendisini sorunsuzca silebilirsiniz.

Bunlar, dosyanın silinmemesi hatasını düzeltmek için incelediğimiz yöntemlerdir. Belki bunun nasıl yapılacağına dair başka seçenekleriniz vardır?

Zararlı ameliyathane Windows sistemi Dosyayı silmenize izin vermiyor ve "Kaynak yolu çok uzun" diye bağırıyor mu? Bu yazıda size herhangi bir program olmadan, dosya adını kısaltarak bu belayı nasıl kolayca ve basit bir şekilde yenebileceğinizi anlatacağım.

Kaynağa giden yol çok uzun - neden?

Neden böyle bir sistem uyarısı göründüğünü ve bir dosya (klasör) üzerinde temel kopyalama veya silme işlemlerinin gerçekleştirilemeyeceğini hemen açıklamak isterim…

Bildirimin kendisi bu sorunun cevabını içeriyor - dosya sistemi Windows, 255 karakterden uzun kaynak dosya adlarını desteklemez (anlamaz).

Ancak dosya veya klasör adınız kısa mı, örneğin “Tatil Fotoğrafları”? Gerçek şu ki, "aptal" sistem dosyanın tüm yolunu adı olarak algılıyor. Dosyanız veya klasörünüz dosya yöneticisinde çok derin bir yerde bulunuyorsa adı şuna benzer:

Böylece isim sembolleri 255'ten fazla parçadan oluşan bir çete halinde toplanıyor.

Bu durumda silinemeyen bir dosya veya klasör nasıl silinir? Çok basit - iç içe geçmiş klasörleri yeniden adlandırarak dosya adını (yolu) kısaltmanız gerekir.

Uzun isimli bir dosya nasıl silinir

Size örneğimle, sistemin yazdığı gibi kaynağa giden yolu çok uzun olan uzun isimli bir dosyayı nasıl sileceğinizi göstereceğim.

Dün karar verdim bilgisayarınızı temizleyin eskilerden yedek kopyalar site, ancak silinmesini istemediler. Tahmin ettiğiniz gibi kaynağa giden yolun çok uzun olduğuna dair bir uyarı çıktı...

Bu uzun yoldaki ilk klasörden başlayarak birçok şeyin adını değiştirdim...

...ve artık daha kısa bir adla dosyadan kurtulmayı tekrar denedim - güvenli bir şekilde silinen dosyalar diyarına gitti.

Doğal olarak yeni dosya (klasör) adı benim örneğimde olduğu gibi bir karakter veya sayıdan oluşmalıdır.

İsmi uzun olan dosya veya klasörleri silme sorunu bu şekilde kolaylıkla çözülmektedir. Tek yöntem bu değil elbette. Olabilmek özel programlar silmek veya kayıt defteri aracılığıyla - az önce manuel yöntemi gösterdim. Bazıları için bu sadece bir dakika sürecek, diğerleri için ise yarım saat sürecek; dosya adının nasıl kısaltılacağına ve kaynağa giden yolun çok uzun olduğuna karar vermek size kalmış.

Yeniye kadar faydalı ipuçları ve ilginç bilgisayar programları.

PowerShell de dahil olmak üzere diğer birçok Windows uygulaması gibi Windows Gezgini'nin de derin klasör yuvalamalı dosya sistemi nesneleriyle çalışamayacağı bir sır değil. yol uzunluğu 260 karakteri aşan. Üstelik bu sınırlama yalnızca uygulama düzeyinde mevcuttur ve dosyanın kendisi NTFS sistemi kadar dosya yollarını destekler 32767 karakterler.

Bu sınırlama kütüphane tarafından uygulanır. Win32 API'si ve maksimum yol uzunluğu 260 karakter olan ( MAX_PATH=260). Genel olarak yol aşağıdaki unsurlardan oluşur: +[256_karakterin_yolu]+[ ] ve NTFS'de bir dizinin/dosyanın maksimum uzunluğu Unicode'da 255 karakterdir. Unicode API işlevlerini kullanırken, şu yolu kullanmak mümkündür: 32767 karakterler. Bu sayede birçok üçüncü taraf programı (aynı popüler dosya yöneticileri, Örneğin UZAK Ve Toplam Amir ) yol uzunluğu 260 karakteri aşan dosyaları/klasörleri herhangi bir zorluk yaşamadan işler.

Tavsiye. Win32 API'sinin bu sınırlamasını atlayabilir ve UNC yol biçimini kullanarak uzun dosya adlarıyla çalışabilir, genişletilmiş uzunluklu yol önekini kullanarak dosyanın mutlak yolunu belirtebilirsiniz. \\?\ . Örneğin, şu şekilde: \\?\C:\SomeLongPath\LongNameFile.txt

Bu kısıtlama, kullanıcıların SMB protokolü aracılığıyla dosyalara ağ erişimine sahip olduğu durumlarda da geçerli değildir (bundan dolayı, uzun yollar genellikle kullanıcı verilerinin bulunduğu dosya sunucularında). Bu sunucuya hizmet veren yönetici standart arayüzü kullanamaz Windows Gezgini Explorer, uzun yollara sahip dosyaları yönetir (siler/taşır). Böyle bir dizine dosya oluşturmaya/kopyalamaya çalışırken bir hata beliriyor:

Hedef Yolu Çok Uzun. Dosya adları hedef klasör için çok uzun olabilir. Dosya adını kısaltıp tekrar deneyebilir veya yolu kısaltılmış bir konum deneyebilirsiniz

Diğer programlar/iletişim kutuları kısıtlamanın varlığını kendi yöntemleriyle bildirebilir.

Katılıyorum, 2014'te olmamız çok komik ve hala Windows'taki maksimum yol uzunluğuna ilişkin 260 karakterlik sınırdan bahsediyoruz... Ancak görünen o ki yakın gelecekte, hatta en son dönemde ciddi bir değişiklik beklenmiyor. Windows 10 Teknik Önizleme'de bu sınırlama hala mevcuttur.

Bu yazıda Windows'ta yolu 260 karakteri aşan dosyalarla nasıl çalışabileceğinizi göstereceğiz. Bu durumda görevimiz uzun yol uzunluğuna sahip dosyaların bulunduğu bir dizini silmektir.

Böyle bir dizini Explorer'dan silmeye çalıştığınızda bir hata belirir:

Dosya adları hedef klasör için çok uzun olabilir. Dosya adını kısaltıp tekrar deneyebilir veya yolu kısaltılmış bir konum deneyebilirsiniz.

Powershell ayrıca 260 karakteri aşan geniş yollara sahip dizinleri ve dosyaları doğru şekilde işleyemiyor. Bu tür dosyaları (C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath) içeren bir dizini silmeye çalıştığınızda bir hata görünür:

Remove-Item .\verylongpath -Recurse

Öğeyi Kaldır: Belirtilen yol, dosya adı veya her ikisi de çok uzun. Tam nitelikli dosya adı 260'tan küçük olmalıdır
karakterlerden oluşmalı ve dizin adı 248 karakterden az olmalıdır.
Satırda:1 karakter:1
+ Remove-Item .\verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: WriteError: (C:\Install\MS S...it\verylongpath:String) , PathTooLongExcepti
Açık
+ FullyQualifiedErrorId: RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

En basit seçenek (aslında hata penceresinde önerilen), yolun toplam uzunluğunu azaltarak ana klasörlerin adını kısaltmaktır (ancak bu her zaman geçerli değildir).

Mklink /d c:\install\link “C:\Install\MS SQL 2012 Express Edition 64 bit\çokuzunyol”

Sembolik bir bağlantıyla çalışmayı hatırlatan başka bir seçenek, sorunlu klasörü bir sanal diske (örneğimizde X:) eşlemek, böylece yol uzunluğunu da azaltmaktır:

Subst X: “C:\Install\MS SQL 2012 Express Edition 64 bit\çokuzunyol”

Artık X: sürücüsündeki verilerle, dosyaların yolları sınırı aşmayacak şekilde çalışabilirsiniz. İşi bitirdikten sonra sanal diski silebilirsiniz:

Yedek X: /d

Ancak kişisel olarak bu gibi durumlarda veri silme görevinde en çok hoşuma giden şey, robocopy.exe, uzun yollarla çalışmayı destekler.

Seçeneği kullanma /MIR robocopy yardımcı programı, hedef dizinde kaynak dizinin tam bir kopyasını (aynasını) oluşturabilir. Kaynak klasör boşsa hedef klasördeki tüm veriler de temizlenir. Boş bir klasör oluşturalım C:\Kurulum\test ve /MIR bağımsız değişkenini kullanarak test klasörünün içeriğini hedef klasöre kopyalayın (klasör adı boşluk veya Kiril karakterleri içeriyorsa, yolun tırnak içine alınması gerekir).

Robocopy /MIR C:\Install\test "C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath"

Komutu yürüttükten sonra C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath dizininin içeriği temizlenir (boş dizinin içeriğiyle değiştirilir).

Bugün, yol uzunluğu 260 karakter sınırını aşan klasörler içeren dosya sunucularındaki klasörlerle çalışırken kullanabileceğiniz bazı basit püf noktalarını gösterdik.