2011-05-20 43 views

回答

1

查找FSOpenForkFSReadFork。 (Apple有一个代码示例,名称为AudioCDSample)。你可能想看看它在GDB下,但从我看到它使用不推荐使用的API(这是一个命令行工具,可以读取这些文件(/usr/bin/DeRez)即FSRead代替FSReadFork)。

4

textClipping文件是一个老式的资源分叉文件。您需要使用FSOpenResourceFile打开它,然后使用Get1Resource从文件中读取资源。该文件可能包含文本的几种不同资源类型:“RTF”(富文本),“utxt”(UTF-8),“utf8”(UTF-8)或“TEXT”(ASCII)类型资源ID为256.一旦你阅读了资源,从句柄中提取数据并用它来做你想要的。

+0

我怎么会访问不同的数据类型(我已经成功地读取数据)? – Mark 2011-05-23 09:48:55

+0

不知道你在问什么。你有什么尝试? – 2011-05-26 03:48:35

0

它看起来像在macOS 10.12 Sierra中,.textClipping文件现在是属性列表。

根词典有关键的“UTI-Data”。其中,关键字:com.apple.traditional-mac-plain-text,public.utf16-plain-text和public.utf8-plain-text具有几种不同的数据表示形式。

下面是从一个通道读取的例子:

NSString *path = @"/path/to/file.textClipping"; 
NSData *data = [NSData dataWithContentsOfFile:path]; 
id plist = [NSPropertyListSerialization propertyListWithData:data options:0 format:nil error:&error]; 
NSString *text; 

if (plist && error == nil) { 
    NSDictionary *utiData = [plist objectForKey:@"UTI-Data"]; 
    text = [utiData objectForKey:@"public.utf8-plain-text"]; 
} 
相关问题