作者bleed1979 (十三)
看板CSSE
标题Re: [问题] 关於FAT32
时间Tue Aug 18 06:53:07 2009
※ 引述《roothanns (hanns)》之铭言:
: 各位大大好:
: 最近在作SD card上的研究,希望可以分析出这张SD card是不是有异动过,
: 如原本有1000个档案在SD card,但下次如果使用者先删除其中一个档案,
: 再由复制PC回SD,结果tatal size是不变的,请问有辨法由FAT得知有无异动吗?
: 希望是比较快速的方式。 谢谢
FAT32的档案是在资料区域以Cluster为单位对应FAT区域的FAT表的每个32 bits整数
我的看法有两解
sol1:查看FAT表的更动,端看演算法
当你删掉一个档案, 该档案占用的FAT表的位置会空出来(我自己做是将之清为0)
所以你复制回去时, 如果演算法是设计在目前所有档案後再找FAT表空的位置
那就可以很清楚知道是有异动过的
(X代表没用到, 请细看spec)
FAT表原本为
0xXFFFFFF8 0xXFFFFFFF 3 4 0xXFFFFFFF 6 7 0xXFFFFFFF
[ 根目录 ] [ 要删的档案 ] [别的档案]
FAT表可能会变成
0xXFFFFFF8 0xXFFFFFFF 0 0 0 6 7 0xXFFFFFFF 9 0xA 0xXFFFFFFF
[ 清成0 ] [别的档案] [ 复制回去放这 ]
当然我说了要看演算法的应用
如果该演算法每次都是从根目录对应的Cluster开始查找空间(也就是每次都从头找)
那0 0 0又会被填回去, 这方法就不适用
sol2:明确知道该档案的档名,查最後存取时间
这个就要看spec的栏位
不管如何, 备份FAT1和FAT2应该是一定要做到的功夫就是了
Bleed
--
World of bleed1979
http://bleed1979.myweb.hinet.net/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.143.186
1F:推 leekunhsien:X5 10/20 10:19