阅读:1682回复:7
fat文件系统的问题,做u盘的看过来
如果要在文件内部删除或是添加数据,那么后面的文件数据都要相应移动么?FAT区里是按簇来存储的数组来表示个链。root区里只记录了文件的开始簇号和大小。只能吧后面的数据全部做调整么?没有好点的办法?
|
|
沙发#
发布于:2003-09-14 15:45
将从root区取到的开始簇号为地址,将fat中对应的链表删掉就好了!
|
|
板凳#
发布于:2003-09-14 19:11
还要将两端簇链连起来,即将断开前一个镞的后续簇相应修改,
同时还应该修改文件大小 |
|
地板#
发布于:2003-09-15 09:37
别忘了把root区的第一个字节改为\"0xe5\"。 :D
|
|
|
地下室#
发布于:2003-09-15 11:06
这些我都知道的.我说的删除或是添加文件不是说是以整个文件或是整个簇位单位的。比如我在第一个簇删除了1个字节,那么我后面的数据都要向前移位? 换句话说:fat系统里面,是不是只能是最后一个簇不满,前面的欧要是满的?
还有不一定非要改0xe5吧,我直接都清0,也可以的 |
|
5楼#
发布于:2003-09-15 11:21
---------------------------
这些我都知道的.我说的删除或是添加文件不是说是以整个文件或是整个簇位单位的。比如我在第一个簇删除了1个字节,那么我后面的数据都要向前移位? 换句话说:fat系统里面,是不是只能是最后一个簇不满,前面的欧要是满的? 还有不一定非要改0xe5吧,我直接都清0,也可以的 --------------------------- 文件全删,root相应部分全部都清零,当然也可以。 那是肯定的,前面删除了1字节,后面的数据肯定是要向前移的。 除非你在你的文件中存在一个这么一个不被用到的数:比如“0xe5”,表明该位是空数据,无实际用途。当然其它配套的很多东西都要改。 |
|
|
6楼#
发布于:2003-09-15 12:50
fat文件系统没有定义簇内空字节表示么?
要是修改了前面簇的大小,那么后面的簇都要前移? 这样的代价太大了吧 我手头没有fat的标准,所以有这个疑问 sky412你说的自定义空数据位,好像不行 因为不光是你用fat,windows等操作系统也在用。不能自定义的,你只能按标准做 |
|
7楼#
发布于:2003-09-15 13:07
在本网站下载区里有关于fat32的,你可以搜搜。
|
|
|