IOS:Directories
iOS앱은 데이터를 기록하거나 읽기 위한 몇 가지 디렉토리를 가지고 있다. 이 디렉토리들은 샌드박스로써 해당 앱에서만 접근이 가능하다.
Documents directory
Documents 디렉토리는 사용자 데이터를 기록하기 위한 용도로써, 주로 사용자의 의도로 앱이 사용하는 컨텐츠를 저장하는 곳이다. 의미가 좀 난감하긴 하지만, 임시 파일을 제외하고 대부분은 이 디렉토리에 데이터를 저장하고 읽으면 된다는 의미이다.
물론 서브 디렉토리를 가질 수 있다.
이 디렉토리는 iTunes에 의해 백업되는 디렉토리이기도 하다. 그리고 iTunes로 해당 앱에 파일을 집어넣는 곳이기도 하다.
도큐먼트 디렉토리 경로를 알기 위해서는 다음 코드를 이용한다:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if ([paths count] > 0) {
NSLog(@"Documents directory: %@", [paths objectAtIndex:0] );
}
특별한 경우가 아니라면 위에서 구한 paths는 1개의 아이템 만이 들어있을 것이다.
참고로 애플에서 이 디렉토리의 과도한 사용에 대해 제재한다는 이야기가 얼마전 있었다.
Temporary directory
앱이 실행 중 사용하는 임시 파일들을 저장하기 위한 용도이다. 다만 iOS SDK가 직접 캐싱하는 파일은 여기에는 저장되지 않는다.
임시 파일이니 만큼 앱에서 기록했던 파일들은 가급적 앱에서 직접 지워주는 것이 좋다. iOS가 자체적으로 tmp의 내용을 지우기도 하는데 언제 지워질 지는 알 수 없다.
임시 디렉토리는 다음과 같이 경로를 얻을 수 있다.