SORU
10 Aralık 2009, PERŞEMBE


Neden 260 karakter yolu uzunluğu sınırı Windows var mı?

En uygunsuz anlarda bu soruna karşı birkaç kez geldi:

  • açık kaynak üzerinde çalışmaya çalışıyorum derin yolları ile projeler Java
  • Derin Fitnesse depolama kaynak kontrolü ağaçları wiki
  • Bir hata Çarşı kaynağım almak için kullanmaya çalışıyorum ağaç denetimi

Neden bu sınır var mı?

Neden henüz çıkarılmış olmadı mı?

Nasıl yolu sınırı başa çıkıyorsunuz? ... ve hayır, linux geçiş veya Mac OS X geçerli bir cevap değil soru;) bu

CEVAP
10 Aralık 2009, PERŞEMBE


Alıntı bu madde http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx#maxpath

En Fazla Yol Uzunluğu Sınırlaması

Windows API (bazı istisnalar aşağıdaki paragraflarda ele ile), bir yol için en fazla uzunluğuMAX_PATH260 karakter olarak tanımlanır., Yerel bir yolu aşağıdaki sırayla yapılandırılmıştır: sürücü harfi, iki nokta üst üste, eğik çizgi, adını bileşenleri ters eğik çizgi ile ayrılmış ve bir sonlandırıcı boş karakter. Örneğin, D sürücüsünün maksimum yolu ":\ . D ben^>bazı 256 karakterlik bir yolu dize&;^. NULL " nerede "<NULL>" mevcut sistem için görünmez sonlandırıcı null karakteri temsil eden kod. lt (Karakterleri < >burada görsel netlik için kullanılan ve geçerli yolu bir dize parçası.)

Şimdi 1 2 256 1 veya [sürücü] olduğunu görüyoruz[:][yol][null] = 260. Bir 256 DOS günlerinden itibaren makul sabit bir string uzunluğu olduğunu varsayalım. Ve arka DOS olacak sistem sürücü başına geçerli yolu takip farkındayız API, ve 26 (32 with symbols) maximum drives (geçerli dizin).

AH İNT 0x21=0x47 “Bu döner sürücü harfi ve ilk ters eğik çizgi olmadan yol açıklama işlevi.” diyor Yani gördüğümüz sistem depolar basılı belge olarak bir çift (sürücü, path) ve solunum yolu belirterek sürücü (1=A, 2=B, ...), Eğer sizin belirlediğiniz bir 0 daha sonra varsayar yolu için sürücü tarafından döndürülen İNT 0x21 AH=0x15 AL=0x19. Şimdi 260 ve 256, 4 bayt saklanır çünkü yol dizesi değil, neden olduğunu biliyoruz.

640 K RAM yeterli olur çünkü 256 byte yolu bir dize.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013