写入XCode项目目录中的文件

时间:2012-07-23 20:02:39

标签: ios file directory save

我有一个我想要覆盖的XCode项目中包含的文件。该文件在名为book

的目录中称为Introduction.html

在屏幕截图中,您可以看到它在目录中的位置以及我写入它的各种尝试。

enter image description here

任何帮助都会非常感谢!

编辑我的代码在图片中不可读:

 //Atempt 1
NSString *myString = [mutableArray objectAtIndex:0];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"/book/Introduction.html"];
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];

//Attempt 2
[myString writeToFile:@"/book/Introduction.html" atomically:NO encoding:NSUTF8StringEncoding error:&error];

//Attempt 3
NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths2 objectAtIndex: 0];
NSString *docFile = [docDir stringByAppendingPathComponent: @"book/Introduction.html"];    
[myString writeToFile: docFile atomically:NO encoding:NSUTF8StringEncoding error:&error];


//Attempt 4
NSFileHandle *file;
NSMutableData *data;
const char *bytestring = "black dog";    
data = [NSMutableData dataWithBytes:bytestring 
                             length:strlen(bytestring)];
file = [NSFileHandle fileHandleForUpdatingAtPath: 
        @"book/Introduction.html"];
if (file == nil)
    NSLog(@"Failed to open file");
[file seekToFileOffset: 10];
[file writeData: data];
[file closeFile];
[file release];

1 个答案:

答案 0 :(得分:0)

itgiawa,

据我读过文档,“我的XCode项目中的文件”无法覆盖,因为iOS中的沙盒机制不允许您的应用访问此空间。我记得读过指令“如果你需要覆盖应用程序附带的数据,请将它们复制到Documents目录并覆盖副本。”

所以我说你的尝试1最接近,除了你需要先将资源包中的文件复制到Documents目录中。

问候,nobi