Files
2024-02-19 00:25:23 -05:00

42 lines
1.4 KiB
Plaintext

From: noesis@ucscb.UCSC.EDU (Kyle Anthony York)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Win95 FAT long file name storage?
ok, here goes:
long file names are stored as follows, i've been using direct sector
access, so i don't know if findfirst(..) findnext(..) will work.
the long names are stored as unicode strings in the immediatly preceding
entries. the entry attribute byte is 0x0f.
the long name format is also used whenever a filename has lower case
characters, thus preserving case and backwards compatability.
so...if the name is ``abcdefghijklmnop'' and this is the first entry of a
subdirectory:
entry[0] = "."
entry[1] = ".."
entry[2] = "ijklmnop", attribute = 0x0f
entry[3] = "abcdefgh", attribute = 0x0f
entry[4] = "ABCDEF~1", attribute = normal
in addition to having the attribute 0x0f, the entry format is:
BYTE 0 --- bit 7 = 1 if deleted, 0 if not
6 = 1 if last block of extended entry, 0 if not
5..0 = extended entry # (1..31)
BYTE 1..10 --- first 5 characters in unicode ("abcde" becomes
"a", 0, "b", 0, "c", 0, "d", 0, "e", 0
BYTE 11 --- attribute (0x0f)
BYTE 12 --- ?? unknown ??
BYTE 13 --- ?? unknown ??
BYTE 14..25 -- next 6 characters (in unicode)
BYTE 26..27 --- 0x0000 (first cluster #)
BYTE 28..31 --- last 4 characters (in unicode)
unused bytes are set to 0xff
end of string is denoted by 0x00, 0x00
best o' luck
--kyle