3

アプリでどこからでも開かれる任意のタイプのファイルの内容を読み取り、その内容を NSString に変換してから、この文字列を 16 進数と ASCII に変換したいと考えています。次のコードを使用して rtf ファイルの内容を読み取りましたが、不合理な値が返されました。

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filepath = [[path objectAtIndex:0]stringByAppendingPathComponent:@"/Inbox"];
NSString *filepath1 = [filepath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@",fileName]];
NSString *contents = [NSString stringWithContentsOfFile:filepath1 encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",contents);

rtf ファイルの内容は次のとおりです。これは 16 進表示を行うテスト ドキュメントです。そして、私が得た応答は次のとおりです。

\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural

\f0\fs24 \cf0は、16 進ビューを chi するためのテスト ドキュメントです。

zip と rar を除くあらゆる種類のファイルの内容を読み取る必要があります。助けてください....

4

1 に答える 1

1

テキストファイルを読みたい場合は、次のようにしてみてください。

NSString* path = [[NSBundle mainBundle] pathForResource:@"test"
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                  error:NULL];

詳細については、NSString クラス リファレンスのセクション「ファイルからの文字列の作成と初期化」をお読みになることをお勧めします。

于 2013-06-08T00:52:53.530 に答える