社区
其它技术问题
帖子详情
fat32文件系统怎么查找长文件名的
xiaofen8
2011-03-03 04:18:30
百度找了一下没有我想要的答案,fat32找长文件名是根据找到的第一个长目录项来定位短目录项直接比较对应的短文件名呢,还是逐个逐个长目录项去比较(别扭的是长目录项是倒序排列的),
...全文
907
70
打赏
收藏
fat32文件系统怎么查找长文件名的
百度找了一下没有我想要的答案,fat32找长文件名是根据找到的第一个长目录项来定位短目录项直接比较对应的短文件名呢,还是逐个逐个长目录项去比较(别扭的是长目录项是倒序排列的),
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
文件系统
长
文件名
的表示
4. **大小写敏感**:尽管Windows本身不区分大小写,但在
FAT32
文件系统
中,
长
文件名
是区分大小写的,这可能会影响文件的
查找
和访问。 综上所述,
FAT32
文件系统
通过一种巧妙的方法实现了
长
文件名
的支持,同时确保了与...
Fat32
文件系统
规范
为了确保与其他版本的FAT
文件系统
的兼容性,
Fat32
在处理
长
文件名
时需要遵循一定的规则。当系统尝试访问一个
长
文件名
时,它会先
查找
是否存在对应的短
文件名
,如果不存在,则会根据
长
文件名
目录项中的信息来创建一个短...
Fatfs
文件系统
支持
长
文件名
在传统的FAT
文件系统
中,每个文件或目录被表示为一个8个字符的主
文件名
加上3个字符的扩展名,例如"FILE.TXT"。这种格式对于现代复杂的应用场景来说限制颇多,不能满足用户对
文件名
多样性和可读性的需求。因此,FATfs...
FAT32
数据结构笔记
FAT32
文件系统
是一种广泛应用于计算机硬盘和其他存储设备的文件管理系统。它主要由以下几个关键数据结构组成: 1. **硬盘物理结构**:硬盘通常由多个磁道、扇区和柱面构成,其中扇区是数据存储的基本单位。在
FAT32
...
linux命令手册
- `mount -t vfat /dev/hda5 /mnt/cdrom`: 挂载FAT
文件系统
。 6. **`umount`**: 卸载
文件系统
- `umount /mnt/cdrom`: 卸载`/mnt/cdrom`。 #### 文件权限管理类命令 1. **`chmod`**: 更改文件权限 - `chmod u+...
其它技术问题
3,882
社区成员
9,046
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章