2010年5月15日 星期六

iWork 09 檔案 v.s. 內建封存工具

這是最近才發現的一個有趣現象。由於我碩士畢業已經將近兩年,很久沒有使用 iWork 去寫正式的文件 (當助理的日子裡在實驗室用 M$ Office 寫那些很醜的文件就先不提了)。最近自己在進行一個 project,為了該 project 的需要,再次開啟 iWork 09 的 Pages 來用 (話說我升級之後,只使用過 Keynote 畫圖,Pages 跟 Numbers 完全沒動過 ....)。

應該很多人知道 iWork 的檔案其實是一個檔案夾,從右鍵選單就可以看得出來:


那個 "顯示套件內容",簡直讓 iWork 文件檔看起來像一個 Bundle 應用程式一樣,在 Windows 下看就是一個資料夾。事實上,如果有使用過 Xcode 寫 "Document-based" 程式 (意指這種程式可產生出一種自製的文件檔案) 的人,應該會知道製作出來的文件,在 Cocoa Framework 下根本就跟應用程式一樣,呈現出來給使用者看的介面也是由 Interface Builder 做的,如下圖:


但是 iWork 09 開始,情況大有不同,如下圖:


可以看出 iWork 09 的檔案已經不再是資料夾,而是一個單一檔案。這樣的好處是當你要上傳至 FTP 或網路硬碟的時候,可以直接整個檔案上傳,避免有些伺服器或客戶端軟體只把這類檔案當成資料夾,上傳時把檔案拆開來上傳,爛掉的機率就很高。想當然爾,09 的檔案是不能被 08 以前的 iWork 打開的,不過這並不代表 Apple 改寫了整個檔案的內部,其實它們只是幫使用者做個打包的動作而已,就像我以前都會把 iWork 08 的檔案封裝成 zip 檔再攜帶是一樣的。

有趣的事情就在這裡發生了,當我把 iWork 09 的檔案打包成 zip 檔之後,使用系統內建的解壓縮工具去開,它很 "自動地" 把 iWork 09 的檔案也一起拆了,變成資料夾。 = =


這是怎麼回事呢 ? 這是因為系統內建的 BOMArchiveHelper 有一個特性,就是它會持續解壓縮解到它不支援的文件格式才停止。比如說解壓縮 test.txt.zip.zip.zip,它會直接解壓縮三次,到 test.txt 才停止,平常是很好用,可是在這種時候就顯得多管閒事。不過值得高興的是,在 10.5 之後,BOMArchiveHelper 改名成 "封存工具程式",而且修正這個功能了。


要怎麼解決這個問題呢 ? 其實很簡單,改用別的解壓縮軟體即可,我推薦支援格式最多的 The Unarchiver

沒有留言:

張貼留言