2012-12-06 38 views

回答

3

你現在處於一個不可饒恕的位置,不得不復活舊的代碼來處理一種編碼,即使在這些日子裏,這些編碼也沒那麼用。只需要解碼就可以讓您的任務變得更輕鬆。

MacBinaryIII.c/.h,請執行下列操作:

擺脫EncodeMacBinaryFile()EncodeMacBinaryFiles()EncodeMacBinary()FSpIsMacBinary()

也擺脫SetDesktopComment(),並刪除其在DecodeMacBinaryFiles()DecodeMacBinary();如果你想要的只是轉換後的文件,這是多餘的。

雖然大大簡化了事情,但您需要轉換代碼,使其適用於文件路徑,而不是那些以Pascal字符串保存文件名的FSSpec結構,最大限制爲31個字符。爲此目的:

重命名帶.m擴展名的文件而不是.c來處理Cocoa的東西。

要確定文件是否存在,您可以使用-[NSFileManager fileExistsAtPath:]

要讀取文件,您可以使用NSFileHandle快速和骯髒的獲取文件內容進行轉換。你會得到一個NSData,並且需要製作一個可變的副本來轉換它的內容。爲了寫出轉換後的數據,可以利用NSMutableData寫出文件的功能。

最後,在執行字節操作時要小心endian問題。這段代碼是在68000(和後代)硬件和PowerPC:big-endian的日子裏編寫的。

我希望我有一些東西,我可以放在你的腿上,準備去,但考慮到這個特殊的任務,這是我所能提供的。

祝你好運!

+0

無法控制的立場,我認爲這是我的工作頭銜;)Thx。 – catlan