how does windows 95 stores long filenames?

 
long filenames
this file was worked out by jozsef hidasi
hidasi.jozsef@mttbbs.hu
?- [ warning! > ] ------------------------------------------------------------?
this text contains the most info i know at the moment! i'm not responsible for
any data lost!
"???" means i don't know what that field means...
?- [ what this doxument about? > ] -------------------------------------------?
this document contains some info how windows'95 stores the long filenames.
i don't know how long filenames can be handled by windows but as i calculated
a file entry can be 832 bytes long. (see below)
windows uses a simple methold to hide a file from dos, it changes the "file"'s
attribute to volumelabel. basicly a disk can have only one volumelabel, and
this attrib is not used any more as other files! in this way we can make
difference between dos file rec. (i won't describe it now) and windows record.
eighter dos file and windows record are 32 bytes long. (dos file record is the
main file descriptor, date/time/attrib/etc...)
  windows record>
offset		count		type	description	remark
------------------------------------------------------------------
0000h		1		byte	counter		-
0001h		10		char	filename e1	entry 1
000bh		1		byte	attrib		always 0fh
000ch		2		word	???		0
000eh		12		char	filename e2	entry 2
001ah		2		word	???		0
001ch		4		char	filename e3	entry 3
counter:
if attrib=0fh and the counter>64 then  windows entries will follow:
entry no.: counter-'@'
filename: the filename is cut in 3 parts... because of dos compatibility...
???: reserved or don't know...
simple example:
sector 19 ; don't laught! this is a simple floppy :-)
this is a simple dos filenamed file>
00000000:  53 49 4d 50 4c 45 20 20 - 44 4f 53 20 00 03 b8 9d simple  dos .
00000010:  1f 25 1f 25 00 00 b9 9d - 1f 25 00 00 00 00 00 00 %%..節%......
this is the first entry of the new long filenamed file>
(i've created this first and renamed by windows)
(this file is errased because of the filename's first byte is 0e5h)
00000020:  e5 49 4d 50 4c 45 20 20 - 57 49 4e 20 00 2a c6 9d 錓mple  win .*茲
00000030:  1f 25 1f 25 00 00 c7 9d - 1f 25 00 00 00 00 00 00 %%..菨%......
  this is the first windows entry.
the filename's first byte (counter) is c so 4 entryes will follow ...
(one entry can hold 13 characters of the long filename...)
this entry holds "m e d   f i l e    "=filename e1+filename e2+filename e3
(see bellow)
this means that the first entry holds the last characters of the long
filename...
00000040:  43 6d 00 65 00 64 00 20 - 00 46 00 0f 00 44 69 00 cm.e.d. .f..di.
00000050:  6c 00 65 00 00 00 ff ff - ff ff 00 00 ff ff ff ff l.e...

返回




月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地幽默笑话生活休闲写作范文安妮宝贝
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有