A hosszú fájlnév (long filename, LFN) az MS-DOS alatt elterjedt 8.3-as fájlnév (8 karakteres alapnév + 3 karakteres kiterjesztés) elnevezési sémánál hosszabb fájlnevek microsoftos megvalósítása a modern VFAT és NTFS fájlrendszerekben. Mivel a fájlnevek 8.3 karakternél hosszabbak lehetnek, jobban le tudják írni a fájl tartalmát. Megalkotásakor szempont volt az is, hogy a más operációs rendszerekben megszokott hosszabb kiterjesztéseket is használni lehessen (pl. .jpeg, .tiff, .html és .xhtml) a rövidített kiterjesztések (pl. .jpg, .tif, .htm, .xht) helyett. Az első Microsoft Windows operációs rendszer, ami kezelte a hosszú fájlneveket FAT alatt az 1994-ben megjelent Windows NT 3.5 volt.
A hosszú fájlnevek maximálisan 255 UTF-16 karaktert[1][2][3] tartalmazhatnak; ezek között lehetnek szóközök és egyéb, nem alfanumerikus karakterek, kivéve a következő, a parancsértelmező vagy a kernel számára speciális jelentéssel bíró karaktereket: \ / : * ? " < > |
. Ezt technikailag legfeljebb 20 darab, 13 kétbájtos Unicode karakterből álló könyvtárbejegyzés összeláncolásával érik el.[3]
A régebbi operációs rendszerekkel való visszamenőleges kompatibilitás megőrzése érdekében a Microsoft kitalált egy módszert a hosszú fájlnévből a 8.3-as formátumú fájlnév képzésére és a kettő összerendelésére (például a Microsoft.txt
rövid párja a MICROS~1.TXT
).
Az implementációs részletek a rövid fájlnév, illetve a File Allocation Table cikkekben olvashatók.
Kompatibilitási problémák
A Microsoft hosszúfájlnév-megvalósítása a FAT fájlrendszer alatt rejtett, rendszer és kötetcímke attribútumokkal rendelkező könyvtárbejegyzésekkel történik. Ez az úgynevezett VFAT séma előnye a kompatibilitása; a kötetcímkéket az alkalmazások és az operációs rendszer komponensei általában figyelmen kívül hagyják. A korábbi operációs rendszerekre írt programok továbbra is képesek elérni a fájlokat a rövid nevükön, míg az újabb, LFN-kompatibilis programok használhatják a hosszú fájlneveket is.
Amikor az LFN-t bevezették az MS-DOS örökségét hordozó Windows 95-ben, néhány korábbi alkalmazással problémák léptek fel. A DOS módban szektorszintű könyvtárműveleteket végző programok (pl. töredezettség-mentesítők) megsemmisíthették volna a hosszú fájlneveket tároló könyvtárbejegyzéseket, így alapértelmezésben DOS módban letiltásra került a szektorszintű hozzáférés.
Sima DOS-t indítva a hosszú fájlnevek csak VFAT LFN driver betöltése után használhatók (lásd lentebb). A Microsoft régi programjai közül több nem kapta meg a hosszú fájlnevek kezelésének képességét, köztük a Windows 3.1-örökség File Manager sem, amint a Windows Intéző váltott fel az új operációs rendszerben. A Windows NT 3.1-es változata támogatta NTFS fájlrendszer alatt a hosszú fájlneveket a File Managerben és minden más segédprogramjában is. Az NT 3.5 a Windows 95-re való felkészülés jegyében a FAT-alapú hosszú fájlnevek támogatását is megkapta. Azonban a Windows 95 File Managere nem a Windows NT-ből származott, hanem a Windows for Workgroups 3.11-ből.
Az OS/2 a hosszú fájlneveket FAT alatt .LONGNAME
kiterjesztett attribútumokban tárolta, ez a megoldás nem volt kompatibilis a Microsoft implementációjával, és csak az új szabványt támogató segédprogramok látták. Több, a fájlokhoz az útvonalnév alapján hozzáférést nyújtó API számára az új, hosszabb neveket láthatatlanok voltak, bár ezen egy eszközmeghajtó betöltésével segíteni lehetett.
Korlátozások
Mivel a VFAT LFN-megvalósítása egy korábbi, korlátozottabb elnevezési rendszerre épül, elkerülhetetlenek bizonyos komplikációk. Problémákat okozhat túl sok olyan fájl létrehozása, amelyek első hat betűje megegyezik; korlátokba ütközhet olyan fájlnév bejegyzése, ami már egy hosszú fájlnév rövidebb alakjaként automatikusan létrejött (pl. a Microsoft
nevű fájl létrehozása után nem fog sikerülni ugyanabban a könyvtárban a MICROS~1
fájl bejegyzése).[4] A gyökérkönyvtárban még könnyebben előfordulhatnak problémák fájlok vagy könyvtárak létrehozásakor, hiszen a FAT16 alapértelmezésben csak 512 gyökérkönyvtár-bejegyzésnek foglal le helyet. Mivel a hosszú fájlnevek több könyvtárbejegyzést is elfoglalnak, a gyökérkönyvtár hamarabb is betelhet.[5] Valójában mindössze 25, maximális hosszúságú fájlnévnek elegendő a hely (512/20).
A fájlnév maximális használható hossza lecsökkenhet, ha egy mappában, illetve egy mély mappahierarchiában található. Például a fajlnevpelda
nevű fájlt, ami a C:\1234567890\1234567890
abszolút útvonalon található (ez 21 karakter a C:\
-t nem számítva) legfeljebb 255−21=234 karakter hosszúságúra lehet átnevezni, mivel a teljes útvonal hossza is legfeljebb 255 karakter lehet.
VFAT LFN-driverek
Alább következik a Windows 95-beli VFAT-es hosszúfájlnév-megvalósítást támogató eszközmeghajtók listája:
OS
|
Eszközmeghajtó
|
Szállító
|
bármilyen DOS
|
DOSLFN, LFNDOS
|
külső gyártó
|
DR-DOS
|
LONGNAME
|
az OS része
|
OS/2
|
VFAT-OS2.IFS
|
külső gyártó
|
Egyéb fájlrendszerek
Jóval az OS/2 és a Windows NT megjelenése előtt, az 1984 januárjában megjelent Macintosh 128K-n futó eredeti Mac OS-hez készült Macintosh File System az elsők között támogatta a hosszú, szóközöket is tartalmazó fájlneveket. Noha maga a fájlrendszer 255 karakteres fájlneveket is képes volt kezelni, abban az időben a Finder csak 63 karaktert engedélyezett. A Hierarchical File System (HFS) 1985. szeptemberi megjelenésével a maximális fájlnévhosszt 31 karakterre csökkentették le.[6] Amikor a Findert újraírták System 7 alá, a maximális fájlnévhosszt 31-re csökkentették, hogy megegyezzen a HFS korlátjával.[6] 1998 januárjában az Apple a Mac OS 8.1-et a HFS Plus fájlrendszerrel hozta ki, ami ismét képes volt a 255 karakteres neveket kezelni; a Finder azonban továbbra is 31 karakterre korlátozta a nevek hosszát, egészen a Mac OS X-ig.[7]
Az AmigaOS 1985-ben már képes volt 30 karakteres fájlnevek kezelésére.
A Novell NetWare 3.x és 4.x NWFS-kötetei a megfelelő NetWare Loadable Module (NLM) betöltésével képesek a microsoftos hosszú fájlnevek kezelésére.[8]
Kapcsolódó szócikkek
Jegyzetek
Fordítás
- Ez a szócikk részben vagy egészben a Long filename című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.