0

私はこれに一晩中いて、それが私を狂わせています、私はSafariからのopenURL呼び出しによって呼び出されるアプリケーションを持っています。SafariはfileURLを送信し、ファイルをDocuments / Inboxにコピーしてから、そのファイルの内容を文字列に読み込みます。しかし、ファイルを見つけてアクセスするさまざまな方法を試した後、私のアプリはまだファイルが存在しないと言っています。

だから私はこのようにSafariからfileURLを送られます..

file://localhost/Users/plasma/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/EE3A1801-98CF-4C7A-8ED1-639A81316B1C/Documents/Inbox/HereIsYourFile.txt

ターミナルでこのパスを参照すると、それが場所であり、ファイルが存在することを確認できます。

macbook:Inbox plasma$ pwd

/Users/plasma/Library/Application Support/iPhone Simulator/6.0/Applications/EE3A1801-98CF-4C7A-8ED1-639A81316B1C/Documents/Inbox

macbook:Inbox plasma$ ls
HereIsYourFile.txt

このパスをreceivedURLという文字列に入れましたが、ファイルを読み取ろうとすると、空の文字列とエラー260が表示されます。

NSString *myFileContents = [NSString stringWithContentsOfFile:receivedURL
                                             encoding:NSUTF8StringEncoding
                                             error:&error];

これはファイルがそこにないことを推測するので、私はそれが私のアプリに存在することを証明しようとしました...

        NSFileManager *filemgr;
        filemgr = [NSFileManager defaultManager];

        if ([filemgr fileExistsAtPath:receivedURL ] == YES) {
            NSLog (@"File exists");
        } else {
            NSLog (@"File not found");
        }

それは存在しないと言っています!!!! 私はそれを見ることができます..そこにあるので、なぜ私のアプリはできません。ドキュメントページを読みました。この場所にあるファイルは、アプリケーションで表示および読み取り可能である必要があります。

このファイルにアクセスするための助けをいただければ幸いです。

前もって感謝します

プラズマ

4

1 に答える 1

2

アプリの起動時に与えられたものreceivedURLからどのように作成しますか?NSURLあなたはこれをするべきです:

NSString *receivedURL = [url path];

最初にfile://receivedURLがないことを確認してください。

別のオプションは、を使用しNSURLてファイルから文字列をロードすることです。

NSString *myFileContents = [NSString stringWithContentsOfURL:url
                                         encoding:NSUTF8StringEncoding
                                         error:&error];

URLをファイルパスに変換する代わりに。

于 2012-10-25T22:51:07.620 に答える