我正在嘗試讀取已成功下載並保存在文檔目錄中的文件。但是,當我嘗試閱讀它時,如果失敗。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;
}
本地路徑是
#define FIRMWARE_LOCAL_PATH [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"combo.bin"]
我嘗試使用NSTemporaryDirectory(),使用的NSFileManager得到文件的內容,但它們都不起作用。任何想法爲什麼?提前致謝!
你確定combo.bin是文件而不是目錄嗎?你可以確保使用一些探索應用程序來分析你的iOS設備目錄結構(我更喜歡名爲iExplore的應用程序) – heximal
@heximal我是110%肯定combo.bin是一個文件。這是我們用來升級設備的固件。我從我們的服務器上下載了它,然後我將讀取該文件並通過套接字將其發送到設備。 –
@heximal好吧,忘了我剛纔所說的。你是對的。我錯誤地將combo.bin作爲目錄。我認爲我應該將包括文件名的完整路徑傳遞給下載方法。沒有想到這一點。謝謝你指出! :) –