NSFileManager отлично работает на симуляторе, но не на устройстве

У меня проблема с созданием каталогов и файлов с помощью NSFileManager на устройстве iPhone. Мой код, показанный ниже, отлично работает на симуляторе, но не на устройстве. Не могли бы вы мне помочь? Дайте мне несколько направлений, где может быть проблема, спасибо за каждый ответ ..

Я сначала создаю каталоги таким образом:

NSFileManager *fileMgr = [NSFileManager defaultManager];
NSArray *arPaths = NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSUserDomainMask, YES);
NSString *appPath = [[NSString alloc] init];
appPath = [arPaths objectAtIndex:0];

strDownloadsDir = [[NSString alloc] init];
strDownloadsDir = [[appPath stringByAppendingPathComponent:@"/Other"] copy];
if(![fileMgr fileExistsAtPath:strDownloadsDir])
    [fileMgr createDirectoryAtPath:strDownloadsDir attributes:nil];

а затем я пытаюсь создать новый файл в этом каталоге следующим образом:

NSString *filePath = [strDownloadsDir stringByAppendingPathComponent:strDlFileName];
//Test whether this file exists, if not, create it
NSLog(@"%@", filePath);
if(![fileMgr fileExistsAtPath:filePath])
{
    if([fileMgr createFileAtPath:filePath contents:nil attributes:nil])
        NSLog(@"Creating new file at path %@", filePath);
    else
        NSLog(@"Failed to create new file.");
}

Кажется, что-то не так со всем NSFileManager, потому что, когда я использую fileExistAtPath с путем, заданным этим

NSArray *arPaths = NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSUserDomainMask, YES);
NSString *appPath = [[NSString alloc] init];
appPath = [arPaths objectAtIndex:0];

это тоже не работает, я пытался изменить каталог на NSDocumentsDirectory, но это не помогло


person Community    schedule 14.07.2009    source источник
comment
Вы пропускаете много NSStrings. Не делайте лишнего [[NSString alloc] init];.   -  person kennytm    schedule 11.01.2010


Ответы (2)


может быть потому, что использование метода " createDirectoryAtPath: attrubutes: " УСТАРЕЛО от Apple.....

person jAmi    schedule 11.01.2010

Вы можете создать файл только в каталоге песочницы вашего приложения. Apple не позволит вам создать файл из этого.

Это причина, по которой вы не смогли использовать свой телефон?

person Forrest    schedule 29.06.2010