Hosszú fájlnév

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

  1. 255-karakteres, kis- és nagybetűs hosszú fájlnév csak a gyökérkönyvtárban létezhet.
  2. Making Room for Long Filenames. [2008. április 23-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. augusztus 7.)
  3. a b Long Filename Specification. [2001. április 20-i dátummal az eredetiből archiválva]. (Hozzáférés: 2007. március 13.)
  4. CocoaDev: MSDOSFileSystem. [2006. október 18-i dátummal az eredetiből archiválva]. (Hozzáférés: 2007. január 21.)
  5. Errors Creating Files or Folders in the Root Directory
  6. a b Apple Computer: Technical Note FL515: File Manager File Handling Q&As. Apple Developer Connection. Apple Computer, 1992. július 15. (Hozzáférés: 2006. december 20.)
  7. Apple Computer: Technical Note TN1121: Mac OS 8.1. Apple Developer Connection. Apple Computer, 1998. január 30. (Hozzáférés: 2006. december 20.)
  8. Novell: TID1002030 Windows NT, Long File Names on Netware, 1999. február 11. [2011. június 6-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. augusztus 7.)

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.

További információk