본문 바로가기
Apple/Apple_Foundation

FileManager

by LeviiOS 2024. 7. 29.
반응형

애플의 Foundation 프레임워크에서 제공하는 FileManager 클래스는 파일 시스템을 관리하고 상호작용하는 데 사용되는 매우 유용한 도구입니다. 이 클래스는 파일 및 디렉토리의 생성, 복사, 이동, 삭제 등을 포함한 다양한 작업을 수행할 수 있도록 도와줍니다.

 

주요 기능 및 메서드

 

1. 파일 및 디렉토리 생성

 

createFile(atPath:contents:attributes:): 지정된 경로에 파일을 생성합니다.

createDirectory(at:withIntermediateDirectories:attributes:): 지정된 URL에 디렉토리를 생성합니다.

 

2. 파일 및 디렉토리 복사

 

copyItem(at:to:): 파일이나 디렉토리를 한 위치에서 다른 위치로 복사합니다.

 

3. 파일 및 디렉토리 이동

 

moveItem(at:to:): 파일이나 디렉토리를 한 위치에서 다른 위치로 이동합니다.

 

4. 파일 및 디렉토리 삭제

 

removeItem(at:): 지정된 경로의 파일이나 디렉토리를 삭제합니다.

 

5. 파일 및 디렉토리 속성

 

attributesOfItem(atPath:): 파일이나 디렉토리의 속성을 반환합니다.

fileExists(atPath:): 지정된 경로에 파일이나 디렉토리가 존재하는지 확인합니다.

 

6. 디렉토리 내용

 

contentsOfDirectory(atPath:): 지정된 경로의 디렉토리 내의 항목 목록을 반환합니다.

subpathsOfDirectory(atPath:): 지정된 경로의 디렉토리 내 모든 하위 경로를 반환합니다.

 

7. 파일 읽기 및 쓰기

 

contents(atPath:): 지정된 경로의 파일 내용을 Data 객체로 반환합니다.

write(to:options:): 지정된 경로에 Data 객체를 씁니다.

 

 

사용 예제

import Foundation

let fileManager = FileManager.default

// 디렉토리 생성
let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!
let newDirURL = documentsURL.appendingPathComponent("NewDirectory")
do {
    try fileManager.createDirectory(at: newDirURL, withIntermediateDirectories: true, attributes: nil)
    print("Directory created successfully!")
} catch {
    print("Error creating directory: \(error)")
}

// 파일 생성
let fileURL = newDirURL.appendingPathComponent("example.txt")
let content = "Hello, FileManager!".data(using: .utf8)
fileManager.createFile(atPath: fileURL.path, contents: content, attributes: nil)

// 파일 존재 여부 확인
if fileManager.fileExists(atPath: fileURL.path) {
    print("File exists!")
}

// 파일 읽기
if let fileContent = fileManager.contents(atPath: fileURL.path) {
    print("File content: \(String(data: fileContent, encoding: .utf8)!)")
}

// 파일 삭제
do {
    try fileManager.removeItem(at: fileURL)
    print("File deleted successfully!")
} catch {
    print("Error deleting file: \(error)")
}

 

반응형