1. 程式人生 > >關於IOS 向documents等目錄寫檔案和建立資料夾的問題

關於IOS 向documents等目錄寫檔案和建立資料夾的問題

這個問題糾結了兩天,和同事兩個人一直在看原始程式碼,並沒有實際的進行程式碼驗證,結果導致問題糾結了好久,後來發現其實就是方法定義的問題,不知道是不是準確,簡單的描述各個方法的功能:

1.建立資料夾:

    NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString * path1 = [path stringByAppendingPathComponent:@"aaa"];
//    if (![[NSFileManager defaultManager] fileExistsAtPath:path1]) {
//        [[NSFileManager defaultManager] createDirectoryAtPath:path1 withIntermediateDirectories:YES attributes:nil error:nil];
//    }
    NSString * filePath = [[path1 stringByAppendingPathComponent:@"bbb"]  stringByAppendingPathExtension:@"txt"];
    NSString * string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    BOOL success =[[string dataUsingEncoding:NSUTF8StringEncoding] writeToFile:filePath atomically:YES];
    if (success) {
        NSLog(@"寫入成功");
    }else{
        NSLog(@"寫入失敗");
    }
以上程式碼中,對於資料夾的建立,必須經過
//    if (![[NSFileManager defaultManager] fileExistsAtPath:path1]) {
//        [[NSFileManager defaultManager] createDirectoryAtPath:path1 withIntermediateDirectories:YES attributes:nil error:nil];
//    }
方法,進行路徑的建立。而不能直接進行路徑的新增

而建立檔案並寫入檔案 直接使用

    NSString * filePath = [[path1 stringByAppendingPathComponent:@"bbb"]  stringByAppendingPathExtension:@"txt"];
    NSString * string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    BOOL success =[[string dataUsingEncoding:NSUTF8StringEncoding] writeToFile:filePath atomically:YES];
    if (success) {
        NSLog(@"寫入成功");
    }else{
        NSLog(@"寫入失敗");
    }
就可以了