bjzps
驱动小牛
驱动小牛
  • 注册日期2003-03-06
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望22点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1907回复:8

fat16文件系统的问题

楼主#
更多 发布于:2003-09-12 09:31
如果要在文件内部删除或是添加数据,那么后面的文件数据都要相应移动么?FAT区里是按簇来存储的数组来表示个链。root区里只记录了文件的开始簇号和大小。只能吧后面的数据全部做调整么?没有好点的办法?
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-12-13 12:14
用户被禁言,该主题自动屏蔽!
zhangyl
驱动牛犊
驱动牛犊
  • 注册日期2001-07-18
  • 最后登录2009-03-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-21 19:11
操作文件分配表就可以了,文件分配表里记录了每个文件实际内容的存放地点,是一个单向链表,文件的开始蔟记录在目录项里,根据首蔟到分配表里去检索整个链,遇到FFFF标志代表到了尾部.注意:文件分配表有两份,要同步操作.
签名是什么?
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-22 19:13
做什么东东啊,要这样搞,会累死人的哎。
不限容量的免费邮箱 www.k65.net
bjzps
驱动小牛
驱动小牛
  • 注册日期2003-03-06
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望22点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-23 09:15
zhangyl:你说的是整蔟的操作可以这样,
但是如果文件添加或是删除某些数据,导致蔟不满,那怎么做啊?
fat里面好像只规定了可以最后一个蔟不满的。
如果你知道有方法可以标示中间簇不满,快告诉我。
nustzhua:我知道这么做很麻烦,但是我想不到其他的好方法啊,所以才上来问的啊
lxhpt
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-23 10:32
其实你只要先找到原文件的簇,建立簇链.如果只是修改其中的某些内容,那只要找到需要修改内容的数据区,把新内容写入,能后修改FAT.如果是从末尾添加内容,那找到文件簇链后,找到空簇链添加内容,再修改FAT.
bjzps
驱动小牛
驱动小牛
  • 注册日期2003-03-06
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望22点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-23 13:08
lxhpt:
  你说的我都明白。我的意思是我修改的中间的某个簇的内容,比如删一个bit,那么我后面的簇(扇区)的数据都要前移5一个bit么?这样不是很麻烦么?
  只有这种办法?
  我开始问的就是这个,fat的东西我了解的,所以才这么问的
lxhpt
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-24 09:35
我做的系统没有做这样的功能.删除1 bit 或其它的数据确实比较难处理,好象是要这么做.不过这倒是可以讨论.sorry!
phenix_xiaomei
驱动小牛
驱动小牛
  • 注册日期2002-03-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望57点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-01-05 17:59
lxhpt:
  你说的我都明白。我的意思是我修改的中间的某个簇的内容,比如删一个bit,那么我后面的簇(扇区)的数据都要前移5一个bit么?这样不是很麻烦么?
  只有这种办法?
  我开始问的就是这个,fat的东西我了解的,所以才这么问的


就我理解,在文件系统中,修改文件的某个字节时,整个文件已经Cache进了内存。修改完毕,所有的内容从新写入到硬盘。不存在您所考虑的问题。 :)
游客

返回顶部