精華區beta CSSE 關於我們 聯絡資訊
※ 引述《cyyang (CCC)》之銘言: : ※ 引述《CuckooBoy (阿書)》之銘言: : : 這問題是這樣的... : : 一個儲存元件 如:硬碟,CF卡..等 , 就FAT32而言 : : File Description Block中的 磁叢指位器 是一個告訴使用者檔案要到哪一個位址找 : : 我上網找了很多資料,還是不明白它在寫什麼? : : 不知道有沒有人懂這方面的... : : 可以針對 磁叢指位器 舉一個例子...說明一下嗎? : : 感謝感謝 : 雖然覺得這好像是學校作業題目, 但還是簡單講一下, : FAT(12/16/32)是個單向 link list, 你在FDB 看到cluster number後, 就可以到FAT : 找到這個link list的起始位置, 你從FAT 對應的欄位就可以知道下一個cluster在哪, : 在FAT32中, 一直讀到發現欄位變成0x0FFFFFFF就知道這是最後一個cluster. : 在你知道cluster的同時, 自然也可以算出這個檔案一開始的Logical block : address (LBA), 存取該LBA 即可得到檔案內容. 至於要讀多少才算完成, : 請參閱 FDB 的File Size 欄位. : 另外至於1 cluster有幾個sector, 1 sector有幾個byte, 你都可以在boot sector : 中得到相關資訊. : 簡單講一講, 不懂就去參考這份FAT32 File System Specification : 網址是 http://0rz.tw/f92BG : 認真讀完就保證一定懂. 這樣說對嗎....? 我用WinHex軟體,看一個1G容量的CF卡的儲存裝置 1. 從BDB知道... 0B~0C:每一磁區的位元組數(此例為 512) 0D:每一磁叢所佔磁區數(此例為 8) 2. 從FDB知道... 1C~1F:檔案大小(此例為 000003=3個位元組) 1A~1B:磁叢指位器(此例為 000003=3) 由以上兩點.. 知道檔案內容 在磁叢 3 磁叢從2開始 所以3-2=1 資料內容與FDB差 1個磁叢差=8個磁區=512*8=4096位元組=十六進制的1000 FDB第一筆資料在1EA000 所以內容在1EA000+1000=1EB000開始 檔案大小為3個位元組 所以1EB000~1EB002 就是我的檔案內容? 如果,我講對,那我有個問題....FAT1不是記錄著每一個檔案或次資料夾在磁區的那 一個cluster 位置之資訊嗎? 我的FAT1像下面這樣,好像跟我所講的沒什麼關聯,看不出所以然,用不上的感覺..... F8 FF FF 0F FF FF FF FF FF FF FF 0F FF FF FF 0F 00 00 ........................................ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.6.78