社区
其它技术问题
帖子详情
fat32文件系统怎么查找长文件名的
xiaofen8
2011-03-03 04:18:30
百度找了一下没有我想要的答案,fat32找长文件名是根据找到的第一个长目录项来定位短目录项直接比较对应的短文件名呢,还是逐个逐个长目录项去比较(别扭的是长目录项是倒序排列的),
...全文
976
70
打赏
收藏
fat32文件系统怎么查找长文件名的
百度找了一下没有我想要的答案,fat32找长文件名是根据找到的第一个长目录项来定位短目录项直接比较对应的短文件名呢,还是逐个逐个长目录项去比较(别扭的是长目录项是倒序排列的),
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
70 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaofen8
2011-03-05
打赏
举报
回复
address mark是放物理地址的么
ecc是一段可执行代码还是每个扇区都相同的50字节值(即如果此处刚好被弄花了,那么这个值就会被改变,通过这个来校验)
Lactoferrin
2011-03-05
打赏
举报
回复
闪存的页和内存的页可能大小一样,但结构肯定是不一样的
http://en.wikipedia.org/wiki/Disk_sector
xiaofen8
2011-03-05
打赏
举报
回复
和你交流可以学到很多技术上的东西,思维上的就要靠自己了
xiaofen8
2011-03-05
打赏
举报
回复
那扇区内部还有更小的结构,是什么
闪存的页和内存的页一样吗
Lactoferrin
2011-03-05
打赏
举报
回复
那扇区内部还有更小的结构。
这里的等同是存取的最小单位
xiaofen8
2011-03-05
打赏
举报
回复
链接上说每个区块构成几个页,意思是一个块由几个页构成,扇区是硬盘最小的单位,那么等同的闪存最小的单位应该是页,不是吗
闪存的也和内存的页一样吗
Lactoferrin
2011-03-05
打赏
举报
回复
什么意思
xiaofen8
2011-03-05
打赏
举报
回复
闪存中和扇区等同的是块,每次存取的单位是块
块比页大?那么闪存中和扇区等同的不是页么
xiaofen8
2011-03-05
打赏
举报
回复
nice
Lactoferrin
2011-03-05
打赏
举报
回复
address mark有扇区号和一些当前状态
ecc和海明码类似
xiaofen8
2011-03-04
打赏
举报
回复
短文件名只使用长文件名的前两个字母,通过数学操纵长文件名的剩余字母生成短文件名的后四个字母,
然后加后缀"~1"直到最后(如果有必要,或是其他数字以避免重复的文件名),不是这样吗
把OEM字符串开头到第一个句点的最多8个字符复制到8.3文件名的主要名称部分,都没有用到数学的方法?
Lactoferrin
2011-03-04
打赏
举报
回复
转换方法
传给文件系统的名字要是unicode字符串,是长文件名
首先把unicode字符串变成大写
然后把unicode字符串转换成OEM字符串,如果有不在OEM编码范围或者不符合8.3格式的字符,用_代替并决定这是一个丢失的转换
去掉OEM字符串开头结尾的空格和开头的句点
把OEM字符串开头到第一个句点的最多8个字符复制到8.3文件名的主要名称部分,把OEM字符串结尾到最后一个句点的最多3个字符复制到8.3文件名的扩展名部分
这个8.3文件名叫基本文件名
如果这个基本文件名不和已有文件名冲突并且长文件名符合8.3格式并且没有丢失的转换,把基本文件名作为短文件名
否则在基本文件名的主要名后面加上~x,如果超过8个字符就覆盖原来的
这时需要遍历整个目录来确定x的数值,保证不和已有短文件名冲突,x的范围是1-999999
这样就得到了短文件名
xiaofen8
2011-03-04
打赏
举报
回复
说实话这样做没有记住长度方便,lseek(handle, 0, SEEK_END)的实现如果直接用文件长度来计算最后一个簇是哪个比较方便
转换成短文件名用数学操纵是什么方法
Lactoferrin
2011-03-04
打赏
举报
回复
[Quote=引用 16 楼 xiaofen8 的回复:]
如果目录项的第一字节是0就说明它是最后一个,后面的不能当作此目录的东西,这句话是否用一个目录项指示到了eof,这个目录项只是一个占位符
[/Quote]
是
xiaofen8
2011-03-04
打赏
举报
回复
如果目录项的第一字节是0就说明它是最后一个,后面的不能当作此目录的东西,这句话是否用一个目录项指示到了eof,这个目录项只是一个占位符
Lactoferrin
2011-03-04
打赏
举报
回复
目录的长度不能由描述它的目录项得到,目录项的长度是32字节
xiaofen8
2011-03-04
打赏
举报
回复
[Quote=引用 10 楼 xiaofen8 的回复:]
即c:\1234567890123转换成c:\123456~1
我只需要读第一个长目录项(即长文件的最后一项)记下检验值和短目录项的名字比较,然后位移到短目录项(可以从长目录项的第一个字节得知距离)然后用c:\123456~1去和短目录项比较,不用还原长目录链
数学操纵是什么方法
[/Quote]
这样会引起冲突所以很麻烦
如果目录项的第一字节是0就说明它是最后一个,后面的不能当作此目录的东西,什么意思呢,目录项的长度不是0吗
Lactoferrin
2011-03-04
打赏
举报
回复
http://en.wikipedia.org/wiki/Flash_memory
维基百科是好东西
xiaofen8
2011-03-04
打赏
举报
回复
块?能否介绍一下闪存的这些概念,你现在挺好的水平高有比我多的乐趣
Lactoferrin
2011-03-04
打赏
举报
回复
闪存中和扇区等同的是块,每次存取的单位是块
加载更多回复(48)
FAT32
学习笔记(二)
长
文件名
的处理,文件内容的
查找
,目录的处理
长
文件名
的处理 在
FAT32
的directory entry里,所预留的
文件名
的
长
度是8.3格式的,也就是说,
文件名
是8个字符,后缀名是3个字符,
长
于这个的就被认为不合法。不太确定这个规定是从FAT12开始的,还是从FAT16开始的,总之在
FAT32
里依旧有这个限制的影子,但
FAT32
同样也有机制去处理更
长
的
文件名
。 下面是按照第一篇文章一样的方式创建出来的
FAT32
文件格式的image文件,
linux恢复fat
文件系统
,磁盘存储结构与文件恢复实验(FAT
文件系统
)
任务四:
查找
文件记录并说明对文本文件进行
查找
的过程,以及每步产生的结果与分析。1.根据BPB中的信息,计算FDT位置。2.编写代码显示FDT,观察
长
文件名
的显示格式,并记录目标文件的首簇号。3.根据公式计算目标文件起始扇区位置。4.读取文件在数据区扇区中的内容并记录。这里分别实验了fat16和
fat32
:Fat16:根据bpb,每fat表占0f0字节,保留扇区为1,则fdt的起始扇区为1+0f0*...
深入了解FAT
文件系统
FAT
文件系统
由于其简单性和兼容性,仍然在许多领域广泛应用。了解其内部结构和工作原理有助于更好地管理和维护存储设备,同时在需要时也可以进行数据恢复和故障排除。希望这篇博客能够帮助你更好地理解FAT
文件系统
的运作机制。
经典FAT
文件系统
格式详解
FAT/
FAT32
曾经是windows下主流文件格式,虽然FAT已经这么多年了,也见识到一些缺点,但熟悉FAT,还是对
文件系统
认识有很大帮助。 一般来说,需要具备一些前期知识: 1. 文件存在flash或硬盘里,还是一个个字节进行存储的,存储介子本身不负责具体内容。如果要对硬盘的数据进行识别,必须需要一定格式,还需要一个驱动程序进行识别。 2. 文件格式最主要作用:格式化管理,快速
查找
文件 还有几个知识点: 扇区:一般为512,最小分割单位,但不是最小管理单位。 簇:管理最小单位,一..
FAT32
文件系统
格式详解
FAT32
文件系统
在FAT16中,采用了16bit宽的簇地址, 32bit宽扇区地址, 但由于规定每簇最大的容量不超过102432. 所以FAT16
文件系统
的容量也就限制到了2^16102432,大约2.1GB的空量,并且实际还达不到这个值。
FAT32
文件系统
使用了32bit宽的簇地址,所以称为
FAT32
。但在微软件的
文件系统
中只使用了低28位,最大容量为2^281024*32,约8.7TB...
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章