无法使用NSData writeFile创建新文件,NSFileManager和NSURL永远不会返回filePath

时间:2013-08-15 21:19:55

标签: ios objective-c nsdata nsfilemanager

我正在使用iOS应用程序并且在这个问题上遇到了很多不好的时间,这就是:

1.-我正在创建一个基于某些NSData的文件 2.-我试图检索刚刚创建的新文件的NSURL

问题是NSURL似乎没有找到我尝试使用两种不同方法创建的文件

NSdata * fileData = /*Gets the data of the file from the web*/

if([fileData writeToFile:databasePath atomically:YES])
{

    NSLog(@"path to resource :%@", [[[NSBundle mainBundle] pathForResource:@"myTMP"  ofType:@"epub"] description]);
    //This causes an exception cause the string is Nil but means that the file is created
    return [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"myTMP" ofType:@"epub"]];

}

如果我试试这个:

NSString* path=@"myTMP.epub";
[fileData writeToFile:path options:NSDataWritingAtomic error:&error];
NSLog(@"Write returned error: %@", [error localizedDescription]);

它永远不会创建新文件,任何帮助,建议,评论将非常感激 最好的问候,

豪尔赫。

1 个答案:

答案 0 :(得分:0)

出于明显的安全原因,您不能写入应用程序包。您需要写入Documents或其他应用程序包文件夹。使用此处记录的NSFileManager URLsForDirectory:inDomains:方法:

http://developer.apple.com/library/ios/DOCUMENTATION/FileManagement/Conceptual/FileSystemProgrammingGuide/AccessingFilesandDirectories/AccessingFilesandDirectories.html#//apple_ref/doc/uid/TP40010672-CH3-SW3

有关阅读和阅读的更多一般信息,请参阅http://developer.apple.com/library/ios/DOCUMENTATION/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW2。在iOS上编写文件。