티스토리 뷰
FileManager
파일관리자
FileManager 클래스는 iOS의 Foundation 프레임워크에 포함되어 있는 클래스입니다.
FileManager는 파일시스템 컨텐츠에 대한 편리한 인터페이스이자, 해당 인터페이스들과 상호작용하기 위한 기본적인 수단입니다. FileManager를 통해서 특정 경로에 컨텐츠를 저장하고, 가져다 사용할 수도 있습니다.
Declaration
선언
FileManager는 iOS의 기초 프레임워크인 Foundation 프레임워크에 속하며, Objective-C의 최상위 객체인 NSObject를 상속합니다.
Overview
개요
FileManager 객체는 파일시스템의 컨텐츠를 검사하고 해당 컨텐츠를 변경할 수 있게 해줍니다. FileManager클래스는 파일 관련 조작에 적합한 공유 파일 관리자에 편리하게 접근할 수 있도록 해줍니다.
FileManager 객체는 파일시스템과 상호작용하는 기본적인 모드입니다.
파일관리자인 FileManager를 통해서 파일과 디렉토리를 이동하고, 복사하고, 생성하고, 배치하는데에 사용할 수 있습니다. 또한 개발자들은 파일과 파일 디렉토리 정보를 얻는 것 뿐만 아니라 해당 정보들의 속성을 변경하는 것도 가능합니다.
파일들의 위치를 지정할 때, 개발자들은 NSURL 혹은 NSString 객체를 사용할 수 있습니다. 그 중에 파일시스템 아이템의 설정에 있어서 NSURL의 사용이 권장됩니다. 그 이유는 URL들은 내부적으로 보다 효율적인 표현으로서 경로정보를 변경할 수 있기 때문입니다.
개발자들은 또한 NSURL 객체로부터 북마크를 얻을 수도 있습니다. 여기에서 북마크란, 이후 특정 디렉토리나 파일을 탐색하는 방법으로서 사용될 수 있는 별칭(alias)을 제공하는 것입니다. 별칭을 활용해서 보다 확실한 수단으로 파일, 파일 디렉토리 등을 탐색할 수 있습니다.
만약 우리가 파일, 파일 디렉토리 등을 연결하고, 옮기고, 복사하고, 제거하는 등의 작업이 필요하다면, 이러한 연산들을 관리하는 FileManager 객체와 연결되어있는 대리자(delegate)를 사용할 수도 있습니다. 이때 해당 대리자(delegate)의 역할은 진행하는 연산을 확인하고 해당 연산에서 에러가 발생하는지 등을 결정하는 것입니다.
macOS 10.7 이상의 버전에서, 해당 대리자(delegate)는 FileManagerDelegate 프로토콜을 채택 및 준수해야만 합니다.
파일관리자 iCloud 연동
iOS 5.0 / macOS 10.7 이상의 버전에서, FileManager는 iCloud에 저장된 아이템들을 관리하는데 사용하는 메서드를 포함하고 있습니다.
클라우드 저장소용으로 태그가 지정된 파일과 디렉토리들은 iCloud와 동기화되며, 이들은 사용자의 iOS 기기 및 매킨토시(Macintosh) 컴퓨터에서 사용이 가능해집니다. 하나의 아이템이 변경되는 것은 이외 모든 위치로 전파되며 모든 아이템들이 동기화됨을 보장해줍니다.
Threading Considerations
스레딩 고려사항
공유되는 FileManager 객체에 관련된 메서드는 다수의 스레드에서 안전하게 호출될 수 있습니다.
그러나 만약 파일, 파일디렉터리의 이동, 복사, 제거, 연결 연산등에 대한 이벤트 통지를 받기 위해 delegate를 사용한다면 이를 위해 FileManager객체의 유일한 인스턴스를 생성해야만 하며 해당 인스턴스를 통해서 delegate를 할당해주어야 합니다.
이후에 해당 파일관리자를 통해 작업을 시작해주어야 합니다.
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
iOS swift UIViewController, didMove 메서드 개요 (0) | 2020.09.22 |
---|---|
Swift FileManager 파일삭제, removeItem 메서드 개요 (0) | 2020.09.19 |
iOS CoreData, 코어데이터 개요, 관리 지원기능 정리 (0) | 2020.08.25 |
iOS UICollectionViewFlowLayout 개발자 문서 개요 (0) | 2020.08.21 |
iOS UITableView, reloadData 개요 및 참고사항 (0) | 2020.08.20 |
- Total
- Today
- Yesterday
- swift언어
- swift reduce
- 스위프트
- 프로토콜
- createML
- SwiftUI
- swift
- 백준swift
- 프로그래머스
- 컬렉션
- 알고리즘
- swift알고리즘
- Protocol
- 프로그래머스swift
- swift 기초
- 개발자문서
- 알고리즘문제
- CoreML
- ios
- 김프매매
- swift 문자열
- publisher
- swift string
- Swift 알고리즘
- uikit
- 자연어처리
- swift문제
- Collection
- 백준알고리즘
- 부스트코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |