精華區beta CSSE 關於我們 聯絡資訊
※ 引述《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
leekunhsien:X5 10/20 10:19