?? long.htm
字號:
<html>
<head>
<title>`</title>
</head>
<body background="../jpg/di1.JPG">
<p align="center"><font size="5" color="#0000ff">how does windows 95 stores long
filenames?</font></p>
<div align="center"><center>
<table border="0" width="88%">
<tr>
<td width="100%"> <pre>long filenames
</pre>
<pre>this file was worked out by jozsef hidasi
hidasi.jozsef@mttbbs.hu</pre>
<pre>?- [ 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...</pre>
<pre>?- [ 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)</pre>
<pre>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...)</pre>
<pre> 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</pre>
<pre>counter:
if attrib=0fh and the counter>64 then windows entries will follow:
entry no.: counter-'@'</pre>
<pre>filename: the filename is cut in 3 parts... because of dos compatibility...
???: reserved or don't know...
</pre>
<pre>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 %%..菨%......</pre>
<pre> 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...</pre>
</td>
</tr>
</table>
</center></div>
<p align="center"><a href="../index.htm">返回</a></p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -