Windows'ta 'Dosya Adı Çok Uzun' Sorunu Nasıl Onarılır

Bu sorunu daha önce gördüyseniz, muhtemelen sizin için basit bir düzeltme oldu. Bu hatayı ikiden fazla kez gördüyseniz, bunun bazen düzeltilmesi karmaşık bir sorun olabileceğini de biliyorsunuzdur.

Umarız yalnızca kolay düzeltme çeşitleriyle karşılaşırsınız, ancak sizi daha az kolay, çalışması garantili düzeltmeler için de hazırlayacağız.

Dosya Adı Uzunluğu Neden Windows'ta Bir Sorun Olur?(Why Is Filename Length Even An Issue In Windows?)

Windows gibi işletim sistemleri için bir sorun olan dosya adı uzunluklarının uzun bir geçmişi vardır . 8 karakterden daha uzun dosya adlarına ve 3 karakterlik bir dosya uzantısına sahip olamadığınız bir zaman vardı. Yapabileceğiniz en iyi şey myresume.doc gibi bir şeydi . Bu, dosya sisteminin tasarımından kaynaklanan bir kısıtlamaydı.

Windows'un(Windows) yeni sürümleri çıktıkça işler daha iyi hale geldi. Eski, sınırlı bir dosya sisteminden Yeni Teknoloji Dosya Sistemi(New Technology File System) ( NTFS ) adı verilen bir şeye geçtik. NTFS bizi bir dosya adının 255 karakter uzunluğunda olabileceği ve dosya yolu uzunluğunun potansiyel olarak 32.767 karaktere kadar çıkabileceği bir noktaya götürdü. Peki çok uzun dosya adlarına nasıl sahip olabiliriz?

Windows , sistem değişkenleri olarak bilinen şeylere sahiptir. Bunlar, Windows'un(Windows) çalışması için güvendiği değişkenlerdir, çünkü Windows , her yerde bit ve bayt taşırken bile değişkenlerin ne anlama geldiğini ve nerede olduklarını her zaman bilir. MAX_PATH sistem değişkeni , dosya adlarını ve dosya yollarını 260 karakterin altında sınırlayan değişkendir.

Bir değişken olarak, onu değiştirebileceğimizi düşünürdünüz. Hayır, yapmamalıyız. Bir süveterden bir iplik çekmek gibi olurdu. Bir sistem değişkeni değişir değişmez, diğer sistem değişkenleri ve bunlara bağlı bileşenler çözülmeye başlar.

Nasıl düzelteceğiz peki?

Kolay Düzeltme(The Easy Fix)

Şanslıysanız, hatayı alırsınız ve soruna tam olarak hangi dosyanın adının neden olduğunu bilirsiniz. Veya en azından dosyayı nerede bulacağınız. Belki şuna benzeyen bir dosya adınız vardır:

C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx

Bu durumda failin kim olduğu ortada. Dosyayı Windows Gezgini'nde(Windows Explorer) veya Windows 10'daki(Windows 10) adıyla Dosya Gezgini'nde(File Explorer) bulun, üzerine bir kez tıklayın, yeniden adlandırmak için F2'ye(F2) basın ve bu aptal dosya adını daha makul bir adla değiştirin. Sorun(Problem) çözüldü.

Daha Az Kolay Düzeltmeler(The Less Easy Fixes)

Bu sorunu çözmek her zaman o kadar kolay değildir. Bazen herhangi bir nedenle dosya veya dizin adlarını değiştiremeyebilirsiniz.

Aşağıdaki çözümler işinizi görecektir. Yapmaları zor değil.

PowerShell Kullanarak Dosyaları veya Dizinleri Taşıma(Move) , Silme(Delete) veya Kopyalama(Or Copy Files Or Directories Using PowerShell)

Dosya yolu için karakter sayısının 260'tan fazla olduğu dizinleri taşımaya, silmeye veya kopyalamaya çalışırken bazen hata alırsınız.

Dizin ve klasör sözcüklerinin birbirinin yerine kullanılabileceğini unutmayın. İleride 'dizin' kullanacağız. Aşağıdaki PowerShell cmdlet'leri dosyalarda da kullanılabilir.

Belki dosya yolu şuna benzer:

C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx

Bu dosya yolu 280 karakter uzunluğundadır. Yani normal kopyala-yapıştır yöntemiyle dizini oradan başka bir yere kopyalayamayız. Destination Path Too Long hatası alıyoruz .

Hangi nedenle olursa olsun, dosyanın iç içe olduğu dizinleri yeniden adlandıramadığımızı varsayalım. Biz ne yaptık?

PowerShell'i açın(Open PowerShell) . Henüz PowerShell kullanmadıysanız, Ev Kullanıcıları için PowerShell Kullanımı – Başlangıç ​​Kılavuzu(Using PowerShell for Home Users – A Beginner’s Guide) başlıklı makalemizin keyfini çıkarın . Yine de makaleyi okumadan sonraki adımları yapabilirsiniz.

PowerShell açıldığında , kullanıcı dizininizin kökünde olacaksınız. C:\Users\guymc kullanıcı(Follow) dizininiz olduğunu varsayarak devam edin.

Bu(This) adlı dizin Belgeler(Documents) dizininin içindedir . Documents dizinine geçmek için DOS komutunu cd Documents kullanıyoruz . 

İstemi değişikliğini C:\Users\guymc\Documents olarak göreceksiniz . Bu iyi. İşleri kolaylaştıracak dizinlere daha yakın çalışıyoruz.

Kopya Öğesini Kullanarak Dizini Kopyala

This dizinini ve içeriğini ThatNewFolder içine kopyalamak istiyoruz . PowerShell cmdlet Kopyalama Öğesini (Copy-Item)-Destination ve -Recurse parametreleriyle kullanalım .

-Hedef, PowerShell'e(PowerShell) kopyanın nerede olmasını istediğimizi söyler. -Recurse, PowerShell'e(PowerShell) içindeki tüm öğeleri hedefe kopyalamasını söyler. Kopyalama, orijinalleri oldukları yerde bırakır ve tüm yenilerini hedefte yapar.

Copy-Item This -Destination ThatNewFolder -Recurse

Taşı Öğesini Kullanarak Dizini Taşı

Diyelim ki This dizinini ve içindeki tüm dizinleri ve dosyaları ThatNewFolder'a taşımak istiyoruz(ThatNewFolder) . Taşıma, orijinali yerinde bırakmaz.

PowerShell cmdlet'i Move- (Move-Item)Item'i -Path(-Path) ve -Destination parametreleriyle kullanabiliriz . -Path, taşımak istediğimiz öğeyi tanımlar ve -Destination , PowerShell'e(PowerShell) istediğimiz yeri söyler . 

Cmdlet, Bunu ThatNewFolder'ın(ThatNewFolder) içine koyacaktır . Ayrıca Bu dizinin içindeki her şeyi taşıyacaktır. Move-Item, dosyaları veya dizinleri taşımak için kullanılabilir ve dosya yolu veya dosya adı uzunluğundan bağımsız olarak çalışır.

Move-Item -Path This -Destination ThatNewFolder

Çalıştığından emin olmak için, ThatNewFolder'a girmek için cd ThatNewFolder komutunu(ThatNewFolder) kullanın . Ardından ThatNewFolder içindeki dizinleri listelemek için (ThatNewFolder)dir komutunu kullanın . Bu dizinin orada olduğunu göreceksiniz.

Kaldır Öğesini Kullanarak Dizini Sil

Bu(This ) dizini ve içindeki her şeyi silmek istiyorsak Remove-Item cmdlet'ini kullanırız.

Remove-Item cmdlet'i , içinde şeyler bulunan bir dizini silmeyi zorlaştıran bazı yerleşik güvenliğe sahiptir. Örneğimizde, her şeyi silmek istediğimizi biliyoruz, bu yüzden içerideki her şeyi silmek için -Recurse ve içerideki her(-Force) öğeden emin olup olmadığımızı sormadan bunu yapmak için -Force parametrelerini kullanacağız.(-Recurse)

Dikkatli olun! Bu şekilde silinen herhangi bir şeyi kurtarmak son derece zor olurdu. Yanlışlıkla Silinen Dosyalar Nasıl Kurtarılır bölümündeki yöntemleri deneyebilirsiniz , ancak fazla bir şey beklemeyin.

Remove-Item This -Recurse -Force

Gittiğinden emin olmak için dir komutunu tekrar kullanabilirsiniz.

Windows 10'un Uzun Dosya Yollarını Kabul Etmesini Sağlayın(Make Windows 10 Accept Long File Paths)

Uzun dosya yollarını ve uzun dosya adlarını tekrar tekrar kullanacağınızı biliyorsanız, Windows'un(Windows) sizin için çalışmasını sağlamak daha kolaydır. İşi her gün yapmak için PowerShell kullanmanın anlamı yok.

Bunu yapmamızın iki yolu var. Biri Windows 10 Home kullanıcıları, diğeri ise Windows 10 Pro veya Enterprise kullanıcıları içindir. Bu yöntemler Windows 8.1(Windows 8.1) veya önceki sürümlerde işe yarayabilir , ancak bunu garanti edemeyiz.

(Make)Windows 10 Home'un Uzun Dosya Yollarını Kabul Etmesini (Home Accept Long File Paths)Sağlayın

Windows 10 Home'un(Home) uzun dosya yollarını kabul etmesi için Kayıt Defteri Düzenleyicisini açmamız(Registry Editor) gerekiyor . Daha önce Kayıt Defteri Düzenleyicisi'nde(Registry Editor) çalışmadıysanız dikkatli olun. Buradaki şeyleri yanlışlıkla silmek veya değiştirmek, Windows'un(Windows) tamamen çalışmasını durdurabilir .

Herhangi bir değişiklik yapmadan önce her zaman kayıt defterinizin yedeğini alın. Bununla ilgili bilmeniz gereken her şeyi Windows Kayıt Defterini Yedekleme ve Geri Yükleme ile ilgili Nihai Kılavuzumuzda( Ultimate Guide to Backing Up and Restoring the Windows Registry) öğrenin .

Kayıt Defteri Düzenleyicisi'ni(Editor) açtıktan ve yedeklemenizi yaptıktan sonra, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemLongPathsEnabled anahtarını bulun .

LongPathsEnabled'a(LongPathsEnabled) çift tıklayın . Değer verisi:(Value data:) alanında , 1 sayısının orada olduğundan emin olun . Değişikliği uygulamak için Tamam'ı(OK) tıklayın .

Kayıt Defteri Düzenleyicisi'nden(Registry Editor) çıkın ve şimdi çılgın uzun dosya yollarıyla çalışabilmelisiniz.

(Make)Windows 10 Pro veya Enterprise'ın Uzun Dosya Yollarını Kabul Etmesini (Pro Or Enterprise Accept Long File Paths)Sağlayın

Windows 10 Pro veya Enterprise'ın(Enterprise) uzun dosya yolları kullanmasına izin vermek için Grup İlkesi Düzenleyicisini(Group Policy Editor) kullanacağız . Windows'un bilgisayarda ve kullanıcı seviyelerinde nasıl çalıştığına dair politikalar belirlememize izin veren bir araçtır.

Internet Explorer seçeneklerini devre dışı bırakmak veya etkinleştirmek( disabling or enabling Internet Explorer options) ya da oturum açma ekranına bir mesaj eklemek( adding a message to the logon screen) gibi şeyler yapmak için grup ilkesini kullanma hakkında birkaç makalemiz var .

Başlat(Start) menüsüne gidip gpedit yazarak Grup İlkesi (gpedit)Düzenleyicisini(Group Policy Editor) açın . En iyi sonuç Grup ilkesini düzenle(Edit group policy) olmalıdır . Bunun üzerine çift tıklayın.

Grup İlkesi Düzenleyicisi(Group Policy Editor) açıldığında, Bilgisayar Computer Configuration > Administrative Templates > System > Filesystem . Burada Win32 uzun yollarını etkinleştir(Enable Win32 long paths) politikasını göreceksiniz .

Politika ayarını düzenlemek için üzerine çift tıklayın. Devre(Disabled ) Dışı'dan Etkin'e(Enabled) değiştirin , ardından değişikliği onaylamak için Tamam(OK ) düğmesini tıklayın. 

Politika hemen yürürlüğe girmeyebilir. Yine de grup ilkesini güncellemeye zorlayabilirsiniz( force the group policy to update) .

Bu kadar(That’s It)

Uzun dosya adları ve dosya yolları üzerinde çalışmanın başka yolları da vardır, ancak burada incelediklerimiz en basit ve en etkili yöntemlerdir.



About the author

Excel ve PowerPoint dahil olmak üzere Microsoft Office yazılımlarıyla çalışma deneyimine sahip bir bilgisayar uzmanıyım. Ayrıca Google'a ait bir tarayıcı olan Chrome ile de deneyimim var. Becerilerim arasında mükemmel yazılı ve sözlü iletişim, problem çözme ve eleştirel düşünme yer alır.



Related posts