Windows'un işleyebileceği en uzun dosya yolu nedir?
Windows'un işleyebileceği en uzun dosya yolu nedir?
Yanıtlar:
Maksimum Yol Uzunluğu (MSDN'den)
Windows API'sinde (aşağıdaki paragraflarda açıklanan bazı istisnalar dışında), bir yol için maksimum uzunluk 260 karakter olarak tanımlanan MAX_PATH'dir . Yerel bir yol aşağıdaki sırayla yapılandırılır: sürücü harfi, iki nokta, ters eğik çizgi, ters eğik çizgilerle ayrılmış bileşenler ve sonlandırıcı boş karakter. Örneğin, D sürücüsündeki maksimum yol "D: \ <bazı 256 karakter yolu dizgisi> <NUL>" dür, burada "<NUL>" geçerli sistem kod sayfası için görünmez sonlandırıcı boş karakter gösterir. (<> Karakterleri burada görsel netlik için kullanılır ve geçerli bir yol dizesinin parçası olamaz.)
XP dosya yolu - 250 karakter
Vista dosya yolu - 260 karakter
Temiz bir Windows XP kurulumunda en uzun yol 152 karakterdir.
Windows Vista'nın yarı temiz kurulumundaki en uzun yol 195 karakterdir:
Windows XP, 255 karakter uzunluğunda dosya adlarına izin verir.
Windows Vista, 260 karaktere kadar olan daha uzun dosya adlarına izin verir.
Windows sabiti MAX_PATH
260'a eşittir, ancak diğer cevapların söylediği gibi, en uzun yol 32767.
Buraya bakınız .
32k UNICODE kullanırken, ancak şimdi onu kullanmalıyız, bu yüzden bu maksimum yol uzunluğunu da kullanmalıyız.
Ayrıca, maksimum yol uzunluğu hakkında daha ayrıntılı bazı şeyler açıklayan SO'daki cevabımı da inceleyebilirsiniz .
"Klasik" sınırı 260 karakter drive letter
+ :\
+ 255 characters of filename
+ \
(veya yuvarlama için) + null terminator
gibi diğer yanıtlar söyledi
Ancak, gerçek iç sınır 32767 karakterdir ve bu da tam olarak nitelenmiş bir yol\\?\
bulmak için elde edilebilir
Windows API, maksimum toplam yol uzunluğu 32,767 karakter için uzatılmış uzunlukta bir yola izin vermek için Unicode sürümlerine sahip birçok fonksiyona sahiptir. Bu yol türü, her biri işlev
lpMaximumComponentLength
parametresinde döndürülen değere kadar ters eğik çizgilerle ayrılmış bileşenlerden oluşurGetVolumeInformation
(bu değer genellikle 255 karakterdir). Bir uzatılmış yol belirtmek için"\\?\"
öneki kullanın . Örneğin,"\\?\D:\very long path"
.
Bazı nedenlerden dolayı, tam nitelikli yollar kullanılamıyorsa, daha derin dizinlere bir sürücü harfine subst
/ ile diskpart
veya daha sonra yolu kısaltmak için bir bağlantı / sembolik bağlantı oluşturarak erişilebilir.
Windows 10'dan MAX_PATH
beri, varsayılan olarak olmasa da , sınır da kaldırılmıştır.
Windows 10, sürüm 1607'den başlayarak
MAX_PATH
, genel Win32 dosyalarından ve dizin işlevlerinden sınırlamalar kaldırılmıştır. Ancak, yeni davranışa katılmalısınız.https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file