阅读:1611回复:7
关于FAT16文件目录一问
我的32M的U盘格式化为FAT16格式,FAT16的文件命名是8.3格式,文件名不能大于8个字符,
我在U盘上创建文件 \"新建文本文档.txt\",文件名大于8个字符,在win2000系统下面可以正常显示,但是我读取硬盘扇区信息 root folder后,显示的文件目录信息是 “新建文~1TXT”,÷ 请问这是怎么回事, win2000系统显示的文件名信息,不是从U盘的分区信息里面读取的么,为什么显示的和root folder扇区显示信息不一致,请大侠们分析一下 |
|
最新喜欢:purple... |
沙发#
发布于:2003-08-20 09:34
FAT16的文件命名是8.3格式
看一下window实现长文件名的方法。 |
|
|
板凳#
发布于:2003-08-20 14:36
fat都是不直接支持长文件名的。
是用多个目录项来存储一个文件名。 fat16,fat32都是一样。 你只读一个目录项的信息,就只能读得到第1个目录项的信息了,它就是实际上的8.3名,但读取顺序接下来的几个目录项信息,就能得到完整的文件名了 |
|
|
地板#
发布于:2003-08-20 16:26
长文件名的属性是0XF,目录0X8,所以你发现为0XF时继续读下一个项,直到属性不为OXF,就可以了。当然你要把所有的名字缓存起来。
|
|
地下室#
发布于:2003-08-20 19:02
我看了关于FAT 16文件目录的资料,
没有介绍长文件名的,谢谢大家热心指点 [编辑 - 8/21/03 by sunnywind] |
|
5楼#
发布于:2003-08-21 13:39
按照上面的方法我试了一下
目录扇区信息如下: 00000060h: D0 C2 D2 D7 C0 B4 7E 31 54 58 54 20 00 6C 83 45 ; 新易来~1TXT .l |
|
6楼#
发布于:2003-08-22 09:53
这个问题我已经解决了
―――――――――――――――――― 应该是向前目录项读取,并且读取的目录项文件名为BSTR格式的, 文件名从第二字节开始,以 00 或者 FF 结束: 文件名bstr 二进制编码为 B0 65 13 66 65 67 DC 83 55 53 就是 “新易来菜单” ――――――――――――――――― 00000040h: 41 B0 65 13 66 65 67 DC 83 55 53 0F 00 B5 2E 00 ; A板.feg |
|
7楼#
发布于:2004-07-08 12:05
请问在C51下如何处理BSTR数据?
|
|