NSFileManager berfungsi dengan baik di simulator tetapi tidak di perangkat

Saya mengalami masalah saat membuat direktori dan file dengan NSFileManager di perangkat iPhone. Kode saya, yang ditunjukkan di bawah, berfungsi dengan baik di simulator, tetapi tidak di perangkat, dapatkah Anda membantu saya? Beri saya beberapa petunjuk di mana masalahnya, terima kasih untuk setiap balasan..

Saya pertama kali membuat direktori dengan cara ini:

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];

dan kemudian saya mencoba membuat file baru di direktori ini dengan cara ini:

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.");
}

Sepertinya ada yang salah dengan keseluruhan NSFileManager, karena ketika saya menggunakan fileExistAtPath dengan jalur yang diberikan oleh ini

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

itu tidak berfungsi juga, saya mencoba mengubah direktori ke NSDocumentsDirectory tetapi tidak membantu


person Community    schedule 14.07.2009    source sumber
comment
Anda membocorkan banyak NSStrings. Jangan melakukan [[NSString alloc] init]; yang tidak perlu.   -  person kennytm    schedule 11.01.2010


Jawaban (2)


mungkin karena penggunaan metode " createDirectoryAtPath: attrubutes: " DIHENTIKAN oleh Apple.....

person jAmi    schedule 11.01.2010

Anda hanya dapat membuat file di bawah direktori sandbox aplikasi Anda. Apple tidak akan mengizinkan Anda membuat file dari itu.

Apakah itu alasan Anda gagal pada ponsel Anda?

person Forrest    schedule 29.06.2010