8.3 název souboru - 8.3 filename
Název souboru 8.3 (nazývaný také krátký název souboru nebo SFN ) je konvence názvu souboru používaná starými verzemi systému DOS a verzemi systému Microsoft Windows před Windows 95 a Windows NT 3.5 . Používá se také v moderních operačních systémech Microsoft jako alternativní název souboru k dlouhému názvu souboru kvůli kompatibilitě se staršími programy. Konvence názvů souborů je omezena souborovým systémem FAT . Podobná schémata pojmenování souborů 8.3 existovala také na dřívějších minipočítačových operačních systémech CP / M , TRS-80 , Atari a některých operačních systémech Data General a Digital Equipment Corporation .
Přehled
8.3 Názvy souborů jsou omezeny na maximálně osm znaků (za jakýmkoli specifikátorem adresáře), následované volitelně příponou souboru, která se skládá z tečky .
a nejvýše tří dalších znaků. U systémů, které podporují pouze názvy souborů 8.3, jsou přebytečné znaky ignorovány. Pokud název souboru neobsahuje žádná rozšíření, vlečený .
nemá žádný význam (to znamená, myfile
a myfile.
jsou rovnocenné). Kromě toho jsou názvy souborů a adresářů v tomto systému velkými písmeny , přestože systémy, které používají standard 8.3, obvykle nerozlišují velká a malá písmena (což CamelCap.tpu
odpovídá jménu CAMELCAP.TPU
). Nicméně, na non-8.3 operačních systémech (jako téměř každého moderního operačního systému) přístup 8.3 souborových systémů (včetně systému DOS formátované diskety , ale také včetně některé moderní paměťové karty a síťové souborové systémy), podkladové systém může změnit názvy souborů interně zachovat velká písmena a vyhněte se zkrácení písmen ve jménech, například v případě VFAT .
VFAT a počítačem generované názvy souborů 8.3
VFAT , varianta FAT s rozšířeným formátem adresáře, byla představena ve Windows 95 a Windows NT 3.5. Umožnilo smíšené případy dlouhých názvů souborů Unicode (LFN) kromě klasických názvů 8,3 pomocí více 32bajtových záznamů záznamu adresáře pro dlouhé názvy souborů (takovým způsobem, že starý systémový software 8.3 rozpozná pouze jeden jako platný záznam adresáře ).
Pro zachování zpětné kompatibility se staršími aplikacemi (v systému DOS a Windows 3.1 ) se na souborových systémech FAT a VFAT automaticky vygeneruje název souboru 8.3 pro každý LFN, jehož prostřednictvím lze soubor přesto přejmenovat, odstranit nebo otevřít, i když vygenerovaný název (např. OVI3KV~N
) může vykazovat malou podobnost s originálem. V souborových systémech NTFS lze generování názvů souborů 8.3 vypnout. Název souboru 8.3 lze získat pomocí funkce GetShortPathName aplikace Kernel32.dll .
Ačkoli neexistuje žádný povinný algoritmus pro vytvoření názvu 8.3 z LFN, Windows používá následující konvenci:
- Pokud je LFN 8,3 velká, nebude na disk vůbec uložena LFN.
- Příklad:
TEXTFILE.TXT
- Příklad:
- Pokud je LFN 8.3 smíšený případ, LFN uloží název smíšeného případu, zatímco název 8.3 bude jeho velká verze.
- Příklad:
TextFile.Txt
stane seTEXTFILE.TXT
.
- Příklad:
- Pokud název souboru obsahuje znaky, které nejsou povoleny v názvu verze 8.3 (včetně mezery, která byla zakázána konvencí, i když ne pomocí API), nebo je některá část příliš dlouhá, je název zbavený neplatných znaků, jako jsou mezery a další tečky. Pokud název začíná tečkami,
.
jsou úvodní tečky odstraněny. Ostatní znaky, jako například,+
se změní na podtržítko_
a písmena se vloží velkými písmeny. Vymazaný název je poté zkrácen na prvních 6 písmen základního jména , následuje vlnovka , následuje jedna číslice a tečka.
, za kterou následují první 3 znaky přípony.- Příklad:
TextFile.Mine.txt
stane seTEXTFI~1.TXT
(neboTEXTFI~2.TXT
byTEXTFI~1.TXT
již mělo existovat).ver +1.2.text
se stáváVER_12~1.TEX
..bashrc.swp
se stáváBASHRC~1.SWP
- Příklad:
- Ve všech verzích NT včetně Windows 2000 a novějších, pokud již existují alespoň 4 soubory nebo složky se stejnou příponou a prvních 6 znaků v jejich krátkých jménech, je oříznutá LFN místo toho zkrácena na první 2 písmena názvu (nebo 1, pokud název basen má pouze 1 písmeno), následované 4 hexadecimálními číslicemi odvozenými od neregistrované hodnoty hash názvu souboru, následovanou vlnovkou, následovanou jednou číslicí, následovanou tečkou
.
a prvními 3 znaky přípony.- Příklad:
TextFile.Mine.txt
stane seTE021F~1.TXT
.
- Příklad:
- Ve Windows 95, 98 a ME, pokud je více než 9 souborů nebo složek se stejnou příponou a prvních 6 znaků a v jejich krátkých názvech (takže
~1
pomocí~9
přípon nestačí k vyřešení kolize), je název dále zkrácen na 5 písmena, následovaná vlnovkou, následovaná dvěma číslicemi počínaje od 10, následovaná tečkou.
a prvními 3 znaky přípony.- Příklad:
TextFile.Mine.txt
staneTEXTF~10.TXT
, pokudTEXTFI~1.TXT
přesTEXTFI~9.TXT
veškerou již existují.
- Příklad:
NTFS , souborový systém používaný rodinou Windows NT , nativně podporuje LFN, ale pro starší aplikace jsou stále k dispozici názvy 8.3. To lze volitelně zakázat, aby se zlepšil výkon v situacích, kdy ve stejné složce existuje velké množství podobně pojmenovaných souborů.
ISO 9660 Systém souborů (používá se hlavně na kompaktních discích ) má podobné omezení na té nejzákladnější úrovni 1 s dodatečným omezením, že názvy adresářů nemohou obsahovat rozšíření a že některé znaky (zejména pomlčky ) nejsou povoleny v názvech souborů. Úroveň 2 umožňuje názvy souborů až 31 znaků, což je více kompatibilní s klasickými názvy souborů AmigaOS a klasickými systémy Mac OS .
Během protimonopolního případu společnosti Microsoft z roku 2001 byly názvy MICROS ~ 1 a MICROS ~ 2 vtipně používány k označení společností, které by mohly existovat po navrhovaném rozdělení společnosti Microsoft.
Kompatibilita
Tato starší technologie se používá v široké škále produktů a zařízení jako standard pro výměnu informací, jako jsou kompaktní flash karty používané ve fotoaparátech. VFAT LFN dlouhé názvy souborů zavedené Windows 95/98 / ME si zachovaly kompatibilitu. Ale VFAT LFN používaný v systémech založených na NT (Windows NT / 2K / XP) používá upravenou zkratku 8,3.
Pokud název souboru obsahuje pouze malá písmena, nebo jde o kombinaci malého názvu basen s příponou velkých písmen , nebo naopak; a nemá žádné speciální znaky a zapadá do limitu 8,3, položka VFAT není vytvořena v systému Windows NT a novějších verzích, jako je XP. Místo toho se používají dva bity v bajtu 0x0c položky adresáře k označení, že název souboru by měl být považován za zcela nebo částečně malá. Konkrétně bit 4 znamená malá přípona a bit 3 malá basename , což umožňuje kombinace jako example.TXT
nebo HELLO.txt
ne Mixed.txt
. Několik dalších operačních systémů to podporuje. Tím se vytvoří problém zpětné kompatibility názvu souboru se staršími verzemi systému Windows (95, 98, ME), které při použití této přípony vidí názvy všech souborů s velkými písmeny, a proto mohou při převozu souboru změnit velká písmena, například na USB flash disk. To může způsobit problémy operačním systémům, které nevykazují chování malých a velkých písmen, jak to dělají DOS a Windows. Aktuální (> 2.6) verze Linuxu toto rozšíření při čtení rozpoznají; krátký název možnosti připojení určuje, zda se tato funkce použije při psaní. Pro MS-DOS můžete použít DOSLFN od Henrika Haftmanna.
Tabulka adresářů
Tabulka adresářů je speciální typ souboru, který představuje adresář. Každý soubor nebo adresář v něm uložený je reprezentován 32bajtovým záznamem v tabulce. Každá položka zaznamenává název, příponu, atributy ( archiv , adresář, skryté, jen pro čtení, systém a svazek), datum a čas vytvoření, adresu prvního klastru dat souboru / adresáře a nakonec velikost souboru soubor / adresář.
Legální znaky pro názvy souborů DOS zahrnují následující:
- Velká písmena
A
-Z
- Čísla
0
-9
- Mezera (ačkoli koncové mezery v základním názvu nebo příponě jsou považovány za výplň a nikoli za část názvu souboru, musí být v uvozovkách, které se mají použít na příkazovém řádku systému DOS, zahrnuty také názvy souborů s mezerami, a pokud je systém DOS příkaz je vytvořen programově, název souboru musí být uzavřen do dvojitých uvozovek (
""
...""
), když je zobrazen jako proměnná v programu vytvářejícím příkaz DOS.) -
!
,#
,$
,%
,&
,'
,(
,)
,-
,@
,^
,_
,`
,{
,}
,~
- Hodnoty 128–255 (i když jsou v systému DOS aktivní služby NLS , některé znaky interpretované jako malá písmena jsou neplatné a nedostupné)
To vylučuje následující znaky ASCII :
-
"
,*
,+
,,
,/
,:
,;
,<
,=
,>
,?
,\
,[
,]
,|
Windows / MS-DOS nemá shell znak escape -
.
( U + 002E . FULL STOP ) v polích názvu a rozšíření, kromě.
a..
položek (viz níže) - Malá písmena
a
-z
, uložená jakoA
-Z
na FAT12 / FAT16 - Řídicí znaky 0–31
- Hodnota 127 ( DEL )
Názvy souborů DOS jsou ve znakové sadě OEM . Kód 0xE5 jako první bajt (viz níže) dělá potíže při použití znaků extra-ASCII .
Položky adresáře v oblasti kořenového adresáře i v podadresářích mají následující formát:
Byte Offset | Délka | Popis | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | 8 | DOS název souboru (polstrovaný mezerami)
První bajt může mít následující speciální hodnoty:
|
|||||||||||||||||||||||||||
0x08 | 3 | Přípona souboru DOS (polstrovaná mezerami, může být prázdná) | |||||||||||||||||||||||||||
0x0b | 1 | Atributy souboru
První bajt může mít následující speciální hodnoty:
Hodnota atributu 0x0F se používá k označení položky dlouhého názvu souboru. |
|||||||||||||||||||||||||||
0x0c | 1 | Rezervováno; dva bity jsou používány NT a novějšími verzemi pro kódování informací o případech | |||||||||||||||||||||||||||
0x0d | 1 | Vytvořte čas, jemné rozlišení: 10 ms jednotek, hodnoty od 0 do 199. | |||||||||||||||||||||||||||
0x0e | 2 | Vytvořte čas. Hodina, minuta a sekunda jsou kódovány podle následující bitmapy:
Upozorňujeme, že sekundy se zaznamenávají pouze v 2sekundovém rozlišení. Jemnější rozlišení pro vytváření souborů se nachází na offsetu 0x0d. |
|||||||||||||||||||||||||||
0x10 | 2 | Vytvořit datum. Rok, měsíc a den jsou kódovány podle následující bitmapy:
|
|||||||||||||||||||||||||||
0x12 | 2 | Datum posledního přístupu; viz offset 0x10 pro popis. | |||||||||||||||||||||||||||
0x14 | 2 | EA-Index (používaný OS / 2 a NT) ve FAT12 a FAT16, vysoké 2 bajty prvního čísla klastru ve FAT32 | |||||||||||||||||||||||||||
0x16 | 2 | Čas poslední změny; viz offset 0x0e pro popis. | |||||||||||||||||||||||||||
0x18 | 2 | Datum poslední změny; viz offset 0x10 pro popis. | |||||||||||||||||||||||||||
0x1a | 2 | První cluster ve FAT12 a FAT16. Nízké 2 bajty prvního clusteru na FAT32. | |||||||||||||||||||||||||||
0x1c | 4 | Velikost souboru |
Práce s krátkými názvy souborů v příkazovém řádku
Někdy může být žádoucí převést dlouhý název souboru na krátký název souboru, například při práci s příkazovým řádkem. K dosažení správného názvu souboru 8.3 lze dodržovat několik jednoduchých pravidel.
- Název souboru SFN může mít před tečkou maximálně 8 znaků. Pokud má více než to, musí být napsáno prvních 6, pak vlnovka
~
jako sedmý znak a číslo (obvykle 1) jako osmý. Číslo jej odlišuje od ostatních souborů se stejnými prvními šesti písmeny a stejnou příponou. - Tečky jsou důležité a musí být použity i pro názvy složek (pokud je v názvu složky tečka). Pokud je v dlouhém názvu souboru / adresáře více teček, použije se pouze poslední. Předchozí tečky by měly být ignorovány. Pokud je za poslední tečkou více znaků než tři, použijí se pouze první tři.
- Obvykle:
- Při převodu na SFN je třeba ignorovat mezery v názvech souborů.
- Ignorujte všechna období kromě poslední. Nezahrnujte žádná další období, stejně jako mezery. Použijte poslední tečku, pokud existuje, a další znaky (až 3). Například pro .manifest by byl použit pouze .man.
- Čárky, hranaté závorky, středníky, znaménka = a znaménka + se mění na podtržítka.
- Malá a velká písmena nejsou důležitá, velká a malá písmena jsou zacházena stejně.
Chcete-li zjistit SFN nebo 8,3 názvy souborů v adresáři
použití: dir /x
zobrazuje krátké názvy, pokud existují, a dlouhé názvy.
nebo: dir /-n
zobrazuje pouze krátké názvy v původním formátu výpisu DIR.
V operačních systémech založených na Windows NT přijímají applety příkazového řádku ( cmd.exe ) dlouhé názvy souborů se zástupnými znaky (otazník ?
a hvězdička *
); dlouhé názvy souborů s mezerami je třeba uvést do zvláštního znaku (tj. uvést je do jednoduchých nebo dvojitých uvozovek).
Počínaje systémem Windows Vista provádějí příkazy konzoly a applety PowerShellu omezené porovnávání vzorů tím, že povolují zástupné znaky v názvu souboru a každém podadresáři v cestě k souboru a tiše nahrazují první odpovídající položku adresáře (například změní aktuální adresář na ).
C:\>CD \prog*\inter*
C:\Program Files\Internet Explorer\