본문 바로가기
아이폰 개발/ios 개념&튜토리얼

ios 파일생성 파일저장 파일삭제

by 인생여희 2021. 1. 12.

ios 파일생성 파일저장 파일삭제

 

임시파일경로 생성

 

- (NSURL *)mytempFileURL{
    
    
    NSString *path = nil;
    NSFileManager *fm = [NSFileManager defaultManager];
    NSInteger i = 0;
    
    //fileExistsAtPath: 해당 경로에 파일이 존재하는 지 확인
    while (path == nil || [fm fileExistsAtPath:path]) {
        path = [NSString stringWithFormat:@"%@output%ld.jpg" ,NSTemporaryDirectory(),(long)i];
        i++;
    }
    //임시파일저장경로 
    return [NSURL fileURLWithPath:path];
}

 

 

파일삭제

//파일삭제
- (void)removeOneFile:(NSURL *)outputFileURL{
  
    //삭제할 파일 경로
    NSString *filePath = [outputFileURL path];
    
    //파일매니저
    NSFileManager *fm = [NSFileManager defaultManager];
    
    //파일이 해당 URL에 존재하는지 체크하기
    if ([fm fileExistsAtPath:filePath]) {
        NSError *error;
        
        //파일 삭제
        [fm removeItemAtPath:filePath error:&error];
        
        if (error) {
            NSLog(@"error :삭제 오류 발생! : %@" , [error localizedDescription]);
        }else{
            NSLog(@"삭제 성공!!");
        }
    }
}

 

 

디렉토리 생성

- (void)checkAndMakeFileDirectory{
   
   //document 경로
    NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(
                                                                       NSDocumentDirectory,
                                                                       NSUserDomainMask,
                                                                       YES) objectAtIndex:0];
    
    
    //오늘날짜시간 이름의 폴더
    NSDate *todayDate = [NSDate date];
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"yyyyMMddSSS";
    NSString *today = [dateFormatter stringFromDate:todayDate];

    NSString *destinationPath = [documentDirectory stringByAppendingFormat:@"/myfolder/%@", today];
    

    NSFileManager *fm = [[NSFileManager alloc]init];
    
    //파일이 있고, 기록 가능한지 확인
    if ([fm isWritableFileAtPath:destinationPath]) {
        NSLog(@"%@ 폴더는 존재합니다." , destinationPath);
    
    }else{
        
        //존재하지 않을경우 생성
        NSError *error = nil;
        
        if ([fm createDirectoryAtPath:destinationPath withIntermediateDirectories:YES attributes:nil error:&error]) {
            NSLog(@"myfolder 폴더가 생성되었습니다.");
        }else{
            NSLog(@"myfolder 폴더생성실패");
        }
        
    }
    
}

 

 

파일저장

-(void)saveFile:(NSData *)imageData:(NSString *)imageName{
    
    
    NSFileManager *fm = [[NSFileManager alloc]init];
    
         //document 경로
     NSString *documentDirectory = [NSSearchPathForDirectoriesInDomains(
                                                                                                                                 NSDocumentDirectory,
                                                                                                                                 NSUserDomainMask,
                                                                                                                                 YES) objectAtIndex:0];
                                                                                                                 YES) objectAtIndex:0
    //오늘날짜 폴더 만들기
    NSDate *todayDate = [NSDate date];
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"yyyyMMddSSS";
    NSString *today = [dateFormatter stringFromDate:todayDate];
    
    
    //저장경로
    NSString *destinationPath =  [documentDirectory stringByAppendingFormat:@"/myfolder/%@/%@.jpg",
                                  today, imageName];


     if ([fm createFileAtPath:destinationPath contents:imageData attributes:nil] == NO) {
         NSLog(@"이미지를 %@에 저장실패." , destinationPath);
     }else{
         NSLog(@"이미지를 %@에 저장성공" , destinationPath);
     }

}

 

 

참고

abc1211.tistory.com/561?category=1009160