티스토리 뷰

Mobile/iOS

[iOS]mainBundle과 document folder 사용

out of coding 2016. 2. 26. 16:10

프로젝트에 포함시킨 리소스들은 모두 mainBundle로 포함이 되게 된다.

이 파일들은 읽기 전용으로 쓰기는 안되므로, document 폴더에 복사를 하여서 사용 하여야 한다.


// document folder List 가져오기

- (void)documentList {

    NSURL* url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

    NSArray* array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[url path] error:nil];

    NSLog(@"list : %@", array);

}


// mainBundle List 가져오기

- (void)mainBundleList {

    NSString *path = [[NSBundle mainBundle] bundlePath];

    NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];

    NSLog(@"list : %@", array);

    

    // jpg로 끝나는 파일들의 목록

    NSArray *array_jpg = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF ENDSWITH '.jpg'"]];

    NSLog(@"last with jpg list : %@", array_jpg);

}


// mainBundle에서 document folder로 파일 복사

- (void)copyOfFileIfNeeded {

    // documents 폴더로 복사할 파일

    NSArray *fileList = [NSArray arrayWithObjects:@"a.mp4", @"b.jpg", nil];

    

    NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    NSFileManager *fileManager = [NSFileManager defaultManager];

    

    for (NSInteger index = 0; index<[fileList count]; index++) {

        NSString *fileName = [fileList objectAtIndex:index];

        NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];

        NSString *toPath = [documentsDirectory stringByAppendingPathComponent:fileName];

        

        // documents 폴더에 파일이 존재하지 않으면 복사

        if (![fileManager fileExistsAtPath:toPath]) {

            if ([fileManager copyItemAtPath:filePath toPath:toPath error:nil]) {

                NSLog(@"success");

            } else {

                NSLog(@"fail");

            }

        }

    }

}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함