티스토리 뷰

반응형

iOS에서 파일을 다루는 방법에 대해 알아보겠습니다. 파일은 앱의 데이터를 저장하고 관리하는 데 중요한 역할을 합니다. iOS에서는 파일 시스템을 통해 파일에 접근할 수 있습니다. 파일 시스템은 앱의 샌드박스라고 불리는 독립된 공간에 위치합니다. 샌드박스는 앱의 보안을 위해 다른 앱이나 시스템에 접근할 수 없는 영역입니다.

샌드박스 내부에는 다음과 같은 디렉토리가 있습니다.

- Documents: 사용자가 생성하거나 수정할 수 있는 파일을 저장하는 곳입니다. 예를 들어, 텍스트 문서나 이미지 파일 등이 여기에 속합니다. 이 디렉토리는 iTunes나 iCloud와 동기화될 수 있습니다.
- Library: 앱의 설정이나 데이터를 저장하는 곳입니다. 예를 들어, 캐시나 데이터베이스 파일 등이 여기에 속합니다. 이 디렉토리는 iTunes나 iCloud와 동기화되지 않습니다.
- tmp: 임시적으로 사용되는 파일을 저장하는 곳입니다. 예를 들어, 다운로드 중인 파일이나 작업 중인 파일 등이 여기에 속합니다. 이 디렉토리는 앱이 종료되거나 시스템이 필요하다고 판단하면 비워질 수 있습니다.

swift에서는 FileManager라는 클래스를 통해 파일 시스템에 접근할 수 있습니다. FileManager는 싱글톤 패턴으로 구현되어 있으므로 shared라는 프로퍼티를 통해 인스턴스를 얻을 수 있습니다.

FileManager.shared를 사용하면 다음과 같은 작업을 할 수 있습니다.

- 샌드박스의 디렉토리 경로를 얻기
- 파일이나 디렉토리 생성하기
- 파일이나 디렉토리 삭제하기
- 파일이나 디렉토리 이동하기
- 파일이나 디렉토리 복사하기
- 파일이나 디렉토리의 속성 얻기
- 파일이나 디렉토리의 존재 여부 확인하기
- 파일이나 디렉토리의 목록 얻기

예를 들어, Documents 디렉토리에 "test.txt"라는 이름의 텍스트 파일을 생성하고 내용을 쓰고 읽는 코드는 다음과 같습니다.

// Documents 디렉토리 경로 얻기
let documentsURL = FileManager.shared.urls(for: .documentDirectory, in: .userDomainMask).first!

// 텍스트 파일 경로 생성하기
let fileURL = documentsURL.appendingPathComponent("test.txt")

// 텍스트 파일 내용
let text = "Hello, world!"

// 텍스트 파일 생성하고 내용 쓰기
do {
try text.write(to: fileURL, atomically: true, encoding: .utf8)
print("파일 생성 및 쓰기 성공")
} catch {
print("파일 생성 및 쓰기 실패: \(error)")
}

// 텍스트 파일 읽기
do {
let text = try String(contentsOf: fileURL, encoding: .utf8)
print("파일 읽기 성공: \(text)")
} catch {
print("파일 읽기 실패: \(error)")
}

 

반응형

'프로그래밍' 카테고리의 다른 글

python import 총정리  (0) 2023.04.16
Python으로 CSV 읽기  (0) 2023.04.16
iOS앱 개발 - Alert창 만들기 Swift  (0) 2023.01.20
Python 에서 함수 만드는 법 예제  (0) 2023.01.20
Python Struct 사용해보기 예제  (0) 2023.01.20
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
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
글 보관함