22Aug

Miért túl sok másolni a Windows-jelentést?

click fraud protection

Ha sokáig dolgozik a Windows rendszerrel, különösen hosszú nevekkel rendelkező mappák és fájlok esetén, bizarr hibaüzenetet fog jelenteni: a Windows jelzi, hogy a mappa elérési útja vagy a fájl neve túl hosszú ahhoz, hogy új rendeltetési helyre lépjen, vagy akár törölje. Mi a helyzet?

Hey How-To Geek!

Szóval másnap átrendeztem néhány fájlt a számítógépemen, létrehozva a mappákat, az ilyen dolgokat. Ezután, amikor néhány fájlt áthelyeztem egy mappába, kapok egy üzenetet, és kijelentem, hogy a létrehozott mappák túl hosszúak lesznek.Össze voltam zavarodva. Tudom, hogy minden egyes operációs rendszer, mivel a DOS támogatja a hosszú fájlneveket, a Windows azt állítja, hogy az út túl hosszú.Miért történik ez?

Igazán,

Mr. Disorganized

Az a probléma, amelybe futsz, két olyan szerencsétlen kereszteződés, amely ilyen esetekben hibát okoz. Ahhoz, hogy pontosan megértsük, honnan származik a hiba, be kell dugnunk a Hosszú Fájlnevek( LFN) történetébe, és hogy a Windows hogyan működik együtt velük, mielőtt megoldásokat találunk.

instagram viewer

Hosszú fájlneveket vezettek be az alapul szolgáló MS-DOS architektúra révén a Windows 95 rendszerben. Az új LFN rendszer legfeljebb 255 karakterből álló fájl- és könyvtárneveket engedélyezett. Ez volt az előző fájlnévrendszer üdvözlendő bővítése, általában 8.3-as fájlnév, mert a név nyolc karakterre és háromjegyű kiterjesztésre korlátozódott, de rövid fájlnévként( SFN) is ismert. Ahogy el tudod képzelni, akkor még mindig sok DOS-alapú alkalmazás volt, és több fejfájást is találtak, hogy megpróbálják az újabb LFN-eket és a régi SFN-eket játszani. Ha valaha találkoztál egy régebbi lemezt vagy CD-t, amelyen furcsán csonka fájlok találhatók rajta( például abcdef ~ 1.txt), a fájlnevet lecsökkentette valamilyen SFN-alapú alkalmazás, amely egy hosszabb és nem támogatott LFN-ből származik( például abcdefghijk.txt).

Az 1990-es évek közepe óta azonban hosszú utat tettünk meg, és az egész Long Filename dolog( nagyrészt) határozottan kivont. Ha az elmúlt 10 évben Windows verziót futtat, akkor valószínűleg soha nem találja meg a fájlnév hosszúságú konfliktusokat, mint ahogy a DOS / Windows 95 napokban futottunk. Ez azt jelenti, hogy még mindig a csuklásba ütköztünk, ahogy felfedezte a lemeztisztító projektet. De miért? Ha a Windows Long Filename rendszere támogatja az összetevők legfeljebb 255 karakterből álló mappáit és fájlnevét, melyik falat futtatja? Nem hibáztathatjuk az NTFS-t( a modern Windows gépek túlnyomó többségét használó fájlrendszer), mivel az NTFS támogatni fogja a mappák és fájlnevek összefűzését 32.767 karakteres teljes elérési útig. Ez messze meghaladja a tipikus címtárstruktúrát, amelyet a legtöbb felhasználónak szüksége lenne.

Ahol minden összeomlik, mesterséges korlátozás A Windows az LFN / NTFS rendszer tetején található: a MAX_PATH változó.A MAX_PATH változó meghatározza, hogy a Windows teljes címtárstruktúrája nem haladhatja meg a 260 teljes karaktert, beleértve a meghajtó betűjét, a kettőspontot, a visszafordulást és a nulla visszaütést.Így csak egy potenciális, MAX_PATH 256 karakterből állhat, pl. C: \ your-256 karakteres útvonal \ .

Tehát mi történt a számítógép tisztításakor, hogy van egy már hosszú útvonallal rendelkező könyvtár( vagy azért, mert a mappanevek hosszúak voltak, a fájlnevek hosszúak vagy mindkettőtöl), és amikor egy vagy többa könyvtárak egy másik hosszú könyvtárba, az elérési út teljes hossza meghaladta a MAX_PATH változó 260 karakteres korlátját.

Most gondolkodhatsz "Ah-hah! Csak megváltoztatjuk a MAX_PATH változót, és megoldjuk a problémát! "Sajnos ez nem olyan egyszerű.Nem csak a MAX_PATH változó lényegében keményen kódolva van a Windows-ban, de még akkor is, ha átnézted azt a hatalmas problémát, hogy megváltoztatod, akkor annyira megtörhetsz, hogy nem érné meg. Túl sok alkalmazás várja az elérési útvonal változóját, amit a Windows régóta meghatároz. Nem tudunk csak körbejárni, anélkül, hogy hatalmas rendetlenséget hoznánk létre.

Hol hagyja el? Nos, a legegyszerűbb megoldás az útadatok szerkesztése. Például, ha van egy csomó mentett cikk, ahol az alkalmazás / kiterjesztés, amelyet mentett az internetről, létrehozott egy olyan könyvtárat, amely a cikk teljes címe és a cikkcím volt, majd maga a fájlnév a teljes címa cikk + a cikk vezetése, nagyon egyszerű lenne elérni vagy meghaladni a MAX_PATH egyetlen mentést. Ezeknek a hatalmas mappáknak és cikkcímeknek a szerkesztése ésszerűbb mérete egyszerűen megoldja a problémát.

Ha hatalmas számú, hosszú útvonallal rendelkező fájl van, és nem kívánja őket szerkeszteni( vagy ha törölni szeretné az -t, egy tonna régi könyvtárak, amelyek túl hosszúak ahhoz, hogy a Windows aMAX_PATH változó), van egy parancssori munka körül. Annak ellenére, hogy a Windowsot a MAX_PATH változó korlátozza, a Windows mérnökei felismerték volna, hogy olyan helyzetekről van szó, amelyeknek a felhasználóknak hosszabb elérési utat kell felvenniük.Így a Windows API funkciója rendkívül hosszú utak kezelésére szolgál.

Annak érdekében, hogy kihasználhassa ezt az API-t, és használhassa a parancssori eszközöket a nehezebb mappákon / fájlneveken, egyszerűen hozzá kell adnia a könyvtár nevét néhány extra karakterrel. Ha például hatalmas könyvtárstruktúrát szeretne törölni( de hiba történt az elérési út hossza miatt), megváltoztathatja a következő parancsot:

rmdir c: \ documents \ some-really-super-Az kiterjesztett mappa-elnevezési séma \

a következőre:

rmdir \\? \ c: \ dokumentumok \ nagyon-nagyon-hosszú-mappa-név-séma \

A kulcs a \\? \a fájl elérésének megkezdése előtt;ez arra utasítja a Windows-ot, hogy figyelmen kívül hagyja a MAX_PATH változó által megszabott korlátozásokat, és lépjen kapcsolatba az elérési útjával, amelyet az alapul szolgáló fájlrendszerek közvetlenül szolgáltattak / értettek( ami egyértelműen hosszabb utat támogat).Mint mindig, óvatosan járjon el a parancssorban, nehogy véletlenül törölje azokat a fájlokat vagy könyvtárakat, amelyeket sértetlenül hagyott.

Ha a probléma áttekintése kíváncsi, feltétlenül belevesszük ezt a cikket a Microsoft Developer Network könyvtárból, a fájlok elnevezése, a elérési útvonalak és a névterekről, hogy megtudjuk, mi történik a motorháztető alatt.

Van egy sürgető tech kérdés? Lépj nekünk egy e-mailt az [email protected] címen, és mi mindent megteszünk, hogy válaszoljon.