it-swarm.asia

Windows'un işleyebileceği en uzun dosya yolu nedir?

Windows'un işleyebileceği en uzun dosya yolu nedir?

56
Ron Tuffin

Maksimum Yol Uzunluğ (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 çizgi ile 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 temsil eder. (<> Karakterleri burada görsel netlik için kullanılır ve geçerli bir yol dizesinin parçası olamaz.)

47
Adam Matan

XP dosya yolu - 250 karakter

Vista dosya yolu - 260 karakter

Temiz bir Windows _ kurulumunda en uzun yol XP 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.

http://www.codinghorror.com/blog/archives/000729.html

15
joe

Windows sabiti MAX_PATH, diğer cevapların söylediği gibi 260 eşittir, ancak gerçek en uzun yol 32767'dir.

Bakınız burada .

32k UNICODE kullanırken, ancak şimdi onu kullanmalıyız, bu yüzden bu maksimum yol uzunluğunu da kullanmalıyız.

Ayrıca, SO'daki cevabım 'a bakabilirsiniz ve bu da maksimum yol uzunluğu hakkında daha detaylı şeyler açıklar.

8
ST3

"klasik" sınırı 260 karakterdir : drive letter + :\ + 255 characters of filename + \ (veya yuvarlama için) + null terminator diğer cevaplarda belirtildiği gibi

Ancak, gerçek iç sınır tam nitelikli bir yol almak için \\?\ ekleyerek elde edilebilecek 32767 karakterlerdir.

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 lpMaximumComponentLength işlevinin GetVolumeInformation parametresinde döndürülen değere kadar ters eğik çizgilerle ayrılmış bileşenlerden oluşur (bu değer genellikle 255 karakterdir). Uzatılmış uzunlukta bir yol belirtmek için "\\?\" önekini kullanın. Örneğin, "\\?\D:\very long path".

Bazı nedenlerden dolayı, tam nitelikli yollar kullanılamıyorsa, daha derin dizinlere subst / diskpart veya yolu kısaltmak için bir kavşak / bir bağlantı oluşturarak

Windows 10'dan beri, varsayılan olarak olmasa da, MAX_PATH sınırı da kaldırılmıştır.

Windows 10'dan başlayarak, sürüm 1607, MAX_PATH sınırlamaları genel Win32 dosya ve dizin işlevlerinden 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

1
phuclv