SyntaxHighlighter

2013-06-09

3.5吋軟碟片FAT磁區解析-part 5. 資料區格式

本來應該是不需要寫到這裡的。但是實際上處理時遇上了一些問題,讓我寫在這裡吧。

第1個問題,EOF
當你分析整個sector,你會發現:要怎麼處理檔案結束(EOF)阿?
當讀取整個磁區時,它一定會是磁區的倍數(512的倍數)大小

但是,實際上一個檔案並不一定會佔滿整個磁區。或者說,很小的機率下檔案會是剛好一個磁區大小。

於是,還是需要讀到EOF來結束實際上的二次元檔案輸出

但是,EOF是C裡面的處理符號,當使用C#之類的語言的時候要怎麼處理呢?

答案是,讀到0x1A就是EOF!!

又但是...這個論點只限於處理文字檔案,不適合處理一般的binary檔案
那要怎麼決定檔案結束呢?

很簡單,記不記得在讀取根目錄結構的時候有個參數是"檔案大小"?
對,讀到應讀取的檔案大小之後就可以停止了。這樣就可以避免誤讀0x1A了

以上,結束 XD


0 件のコメント:

人気の投稿