티스토리 뷰
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
- 주식
- frida
- Spring
- Frontend
- Python
- reactjs
- Linux
- 트렌드
- react
- Windows
- 투자
- 부동산
- CSS
- SWiFT
- golang
- 예제
- Java
- WinAPI
- Backend
- 스핀락
- 유튜브
- ios
- go
- 생각
- JavaScript
- 파이썬
- HTML
- JSX
- 커널드라이버
- ChatGPT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |