Вопрос

Я пытался открыть файл напрямую, например 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 ");
}

Я получаю в консоли Разрешение отклонено:

2009-07-24 17:17:27.415 Mademoiselle[897:20b]
/var/mobile/Applications/.../....app/GirlName.txt
error : Permission denied

Можете ли вы сказать мне, что случилось?

Это было полезно?

Решение

Вы не можете открыть файл в комплекте приложения и сделать его доступным для записи («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];
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top