2016-03-28 18 views
0

ドキュメントディレクトリに正常にダウンロードして保存したファイルを読み取ろうとしています。しかし、私がそれを読もうとすると、失敗する。ここでiOS - ドキュメントディレクトリにあるファイルを読み取ることができません

は誤りである:ここでは

2016-03-28 21:00:26.585 App[569:4103] Path is /var/mobile/Applications/3AFA2430-C0DC-44CD-95F8-A89D82B2C348/Documents/combo.bin 
2016-03-28 21:00:26.603 App[569:4103] Error in reading Error Domain=NSCocoaErrorDomain Code=257 "The operation couldn’t be completed. (Cocoa error 257.)" UserInfo=0x17df29d0 {NSFilePath=/var/mobile/Applications/3AFA2430-C0DC-44CD-95F8-A89D82B2C348/Documents/combo.bin, NSUnderlyingError=0x17df90b0 "The operation couldn’t be completed. Permission denied"} 

は私のコードです:

NSError *error; 
    NSData *firmwareContentData = [NSData dataWithContentsOfFile:FIRMWARE_LOCAL_PATH options:NSDataReadingMappedIfSafe error:&error]; 

    NSLog(@"Path is %@", FIRMWARE_LOCAL_PATH); 

    if(error) 
    { 
     NSLog(@"Error in reading %@", error); 

     return; 
    } 

ローカルパスは、私が取得するNSFileManagerを使用して、)(NSTemporaryDirectoryを使用してみました

#define FIRMWARE_LOCAL_PATH [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"combo.bin"] 

ですファイルの内容は、どれも動作しません。どんな考え?前もって感謝します!

+0

あなたは確かにです。コンボはファイルであり、ディレクトリではありませんか?いくつかのアプリケーションを使ってiOSデバイスのディレクトリ構造を分析することができます(私はiExploreという名前のアプリが好きです) – heximal

+0

@heximal私は110%です.combe.binはファイルです。これは、デバイスをアップグレードするために使用するファームウェアです。サーバーからダウンロードした後、ファイルを読み込んでソケット経由でデバイスに送信しようとしていました。 –

+0

@heximal [OK]を、前に言ったことを忘れてください。あなたが正しいです。私は誤ってcombo.binディレクトリを作った。私はダウンロード方法にファイル名を含む完全なパスを渡すべきだと思った。それを考えなかった。それを指摘していただきありがとうございます! :) –

答えて

1

権限エラーです。ファイルを開くための適切な権限がありません。あなたがどこから来ても、あなたはロックアウトされています。シミュレータでダウンロードし、アップルのファイルシステムを使って実際にダウンロードしたパーミッションを確認してみてください。パスは:

〜/ライブラリ/開発者/ CoreSimulator/Devices //データ/コンテナ/データ/アプリケーション//ドキュメントです。

2つの大きなランダムな文字列を今日のmod日付を示すディレクトリ、またはNSLogをiOSアプリケーションの実際のパスに置き換えます。

+0

答えをありがとう。私が呼び出すダウンロード方法にファイル名のパスを渡すのは間違いでした。それでも私はあなたから何かを学んだ。再度、感謝します! :) –

関連する問題