樹狀圖與映射文件的使用方式

出自 snowiki
前往: 導覽搜尋

簡介

將樹狀圖(*.tree.txt)與映射文件(*.MappingSource.txt/*.MappingTarget.txt)拿出來獨立說明主要是因為瀏覽這兩個檔案時因為牽涉到unix和windows檔案系統的差異,所以在windows下瀏覽在unix製作的檔案就先必須額外提出說明,除了製作環境的影響外,兩種文件所代表的用途與含意是無關的,如果是unix/linux的用戶,因為檔案本身製作就是在ubuntu的環境下,因此可以選擇忽略盲點說明的部分,可直接拉到最後結論來了解使用方式。

文件的盲點

直接以圖片來說明,如下圖四個crc32分別指向四個檔案,操作平台是windows。

  1. 透過FTP下載源檔到本地端的檔案
  2. 從tree.rar解壓出來的檔案,而tree.rar是透過FTP下載至本地端的檔案
  3. 與上面的檔案相同,直接郵winrar開啟tree.rar
  4. 直接掃描源頭(linux下)tree.txt的crc32切細值

確認方式是由4掃回1,可以確認rar本身工作並無問題,檔案封裝後的crc32值與檔源相同,下載至windows下後解壓可以保持和unix下相同的檔案。 tree_and_mapping001.png

但是如果透過FTP來下載檔案後則會直接改寫檔案,為此我一度認為問題是在rarlab本身製作的rar軟體出現問題導致直接下載rar檔解壓縮得到的文件與直接透過FTP下載的文件crc無法匹配的狀況,原因稍後再提。透過與rarlab的mail,可以確定問題是出在unix style和windows style的差異,以下是rarlab直接給我的信件供大家參考。

Your archived file uses Unix style 0x0a end of line sequence.
Your source file has Windows style 0x0d 0x0a end of line sequence.

RAR does not include an option or function to convert Windows style
end of line to Unix. So I suppose, something else converted this file
before compressing it. It might be a text editor or some script.


這封信件的關鍵在於windows和linux下文件每行的檔尾定義的風格不同,所以說必須要做轉換,要不然檔案瀏覽會出現問題,而就是因為直接解壓rar取得的文字源檔案直接由windows內建的筆記本觀看會出現排版混亂的註況,因此才會針對這個問題來確認狀況,而具體了解狀況後才發現問題的根源並非是出在rar這個軟體上面。針對mail所述的內容我們可透過上圖的tree.txt檔案來研究檔案的二近制碼的表現是否和rarlab所述相同,繼續參考下圖,如圖左方是透過FTP轉換檔按過後的二進制碼而右方是linux下的源檔按二進制碼,的確我們可以看到左方檔案的二進制碼的確是右方檔案取代0x0a為0x0d 0x0a的結果。
tree_and_mapping002.png

而如果不做轉換會有什麼狀況就繼續來看下圖,左方是檔案1右方是檔案2,很明顯可以確認到unix style的檔案在windows下會造成換行出現問題的盲點,所以說在windows下瀏覽文件之前務必要把檔案的二進制碼做修正。
tree_and_mapping003.png

再由另一個角度來看,將源檔由筆記本打開後游標放至第一列首後直接執行鍵盤enter(換行)鍵數次後儲存檔案來比較二進制檔案的變化,如下圖可知二進至檔案因此自最首插補了以(0x0d,0x0a)兩個byte為一組的二進制碼數組,這表示要將檔案正確換行的確和行尾的每個byte字元直接改寫有直接關係,而檔頭的部分另外改寫了一組0xef,0xbb,0xbf這三個字串一組則不討論。
tree_and_mapping004.png

樹狀圖的製作概念

外掛結構的製作因為多數都是設計為和BDMV檔源做硬連接後使用,所以BDMV檔源的檔案/資料夾分布會與外掛結構的製作有很大的關連,因此正常情況下外掛結構使用前必須知道BDMV檔源的區碼,至少能由區碼來推定該由哪邊取得(購買)藍光,而更理想的情況是完全掌握外掛結構是針對何種BDMV來源的檔案來製作,因此wiki會在提供外掛結構條目的同時儘量一併提供相應的BDMV源檔樹狀圖資訊供下載者研究時參考,但是礙於來源資訊的透明程度不一,因此不保證每個條目都能提供完整的資訊供參考。

NoteGraphic.png 使用進階腳本生成的樹狀結構文件若一併分享則依照當時情況選擇是否在條目中放上樹狀結構

映射文件的製作概念

映射文件是應用於連接將檔案檔名與實際檔名用,在檔名範例十一這種狀況才會製作,確認方式是以MappingSource文件中每一列的開頭數字後的實際檔名對應到MappingTarget每一列的開頭數字的檔案檔名,由MappingTarget每一列的開頭數字後的檔案檔名可連接到實際的下載連接,如此就可以由MappingSource這個文件找到應該下載的檔案連接,與其他檔名範例不同,檔名範例十一這種命名方式會對應到複數個項目(外掛結構等),每個項目都可以獨立下載檔案,所以MappingSource文件很重要。

NoteGraphic.png 使用進階腳本會同時整合映射文件做到完全取代MappingSource/MappingTarget的目的

樹狀圖與映射文件的使用方式

由上述的盲點的說明可知linux用戶可以不用操心文件瀏覽的問題,而windows下必須先將unix style的檔案做轉換才能正確瀏覽文件,所以說windows內建的筆記本是不能用的,如果沒有自行運用腳本或程式將部分二近制碼取代的能力建議使用ultraedit來開啟檔案,ultraedit會自動判斷是否需要轉換文件格式,使用者只需要在警告訊息出現時選擇確認即可。