2012-12-06 47 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