iPhone - fopen和pathForResource - 权限被拒绝

Nic*_*nsk 2 filesystems iphone fopen

我试过直接打开一个文件fopen("/test.txt","w+"); 它适用于模拟器,但不适用于iPhone.

然后我试过这个:

NSString *path = [[NSBundle mainBundle] pathForResource: @"GirlName.txt" ofType:nil];
NSLog(path);
fichier = fopen([path cStringUsingEncoding:1],"w+");

if (fichier != NULL)
{
    ...
}
else
{
    perror("error ");
}
Run Code Online (Sandbox Code Playgroud)

我收到控制台权限被拒绝:

2009-07-24 17:17:27.415 Mademoiselle[897:20b]
/var/mobile/Applications/.../....app/GirlName.txt
error : Permission denied
Run Code Online (Sandbox Code Playgroud)

你能告诉我什么是错的吗?

mmc*_*mmc 5

您无法在应用程序包中打开文件并使其可写("w +").

如果将模式更改为"r",则相同的代码可能会起作用(我还没有测试过)

如果你需要一个可写的文本文件,你需要放在一个可写的目录中,我会做这样的事情:

//Method writes a string to a text file
-(void) writeToTextFile{
    //get the documents directory:
    NSArray *paths = NSSearchPathForDirectoriesInDomains
        (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    //make a file name to write the data to using the documents directory:
    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
                         documentsDirectory];
    NSString *content = @"Test Copy Here";
    //save content to the documents directory
    [content writeToFile:fileName 
              atomically:NO
                encoding:NSStringEncodingConversionAllowLossy 
                   error:nil];
}
Run Code Online (Sandbox Code Playgroud)