[swift] Swift에서 파일의 압축 해제 방식 확인하는 방법

Swift는 파일의 압축 해제를 위해 여러 가지 방식을 제공합니다. 파일이 압축되어 있는지 확인하고, 어떤 방식으로 압축되어 있는지 확인하는 방법에 대해 알아보겠습니다.

1. 파일이 압축되어 있는지 확인하기

파일이 압축되어 있는지 확인하기 위해서는 파일의 확장자를 확인하는 방법을 사용할 수 있습니다. 일반적으로 압축 파일은 .zip, .tar, .gz 등의 확장자를 가지고 있습니다.

let filePath = "path/to/file.zip"
let fileExtension = URL(fileURLWithPath: filePath).pathExtension

if fileExtension == "zip" {
    print("이 파일은 zip 압축 파일입니다.")
} else if fileExtension == "tar" {
    print("이 파일은 tar 압축 파일입니다.")
} else if fileExtension == "gz" {
    print("이 파일은 gzip 압축 파일입니다.")
} else {
    print("이 파일은 압축 파일이 아닙니다.")
}

위의 예시 코드에서는 파일의 확장자를 확인하여 해당 확장자에 따라 압축 방식을 출력합니다.

2. 파일의 압축 방식 확인하기

파일의 압축 방식을 확인하려면 파일의 내용을 분석해야 합니다. Swift에서는 FileManager 클래스를 통해 파일의 내용을 읽고 확인할 수 있습니다.

let filePath = "path/to/file.zip"
let fileData = FileManager.default.contents(atPath: filePath)

if let fileData = fileData {
    let firstTwoBytes = fileData.prefix(2)
    
    if firstTwoBytes == Data([0x50, 0x4B]) {
        print("이 파일은 zip 압축 파일입니다.")
    } else if firstTwoBytes == Data([0x1F, 0x8B]) {
        print("이 파일은 gzip 압축 파일입니다.")
    } else {
        print("이 파일은 압축 파일이 아닙니다.")
    }
} else {
    print("파일을 읽을 수 없습니다.")
}

위의 예시 코드에서는 파일을 읽어서 파일의 시작 부분의 바이트 값을 확인하여 압축 방식을 출력합니다. prefix(2) 메소드는 파일의 처음 두 바이트를 가져옵니다.

참고 자료