作者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