[swift] Swift에서 파일의 특정 포맷 확인하는 방법

Swift는 기본적으로 파일의 MIME 타입을 확인하는 기능을 제공합니다. 파일의 MIME 타입을 확인하면 파일의 특정 포맷을 식별할 수 있습니다.

파일의 MIME 타입 확인하기

파일의 MIME 타입을 확인하려면 URL 객체를 사용하여 파일의 경로를 지정하고, URLResourceValues를 통해 MIME 타입을 가져올 수 있습니다. 다음은 Swift에서 파일의 MIME 타입을 확인하는 예제입니다.

import Foundation

func getMimeType(forFileAt url: URL) -> String? {
    if let resourceValues = try? url.resourceValues(forKeys: [.contentTypeKey]),
        let mimeType = resourceValues.contentType {
        return mimeType
    }
    return nil
}

let fileURL = URL(fileURLWithPath: "/path/to/file.pdf")
if let mimeType = getMimeType(forFileAt: fileURL) {
    print("File MIME type: \(mimeType)")
} else {
    print("Failed to get MIME type for file.")
}

위의 예제 코드에서는 getMimeType(forFileAt:) 함수를 사용하여 파일의 경로를 전달하면 해당 파일의 MIME 타입을 반환합니다. 파일의 MIME 타입은 String으로 반환되며, 파일이 지정된 포맷에 따라 다른 값이 반환될 수 있습니다.

지원되는 파일 포맷 확인하기

Swift는 내부적으로 파일 포맷의 MIME 타입을 확인하기 위해 UTType 클래스를 사용합니다. 이 클래스는 다양한 파일 포맷과 MIME 타입의 매핑 정보를 제공합니다. 이를 통해 지원되는 파일 포맷을 확인할 수 있습니다.

import MobileCoreServices

func isFileFormatSupported(fileExtension: String) -> Bool {
    return UTTypeConformsTo(UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension as CFString, nil)?.takeRetainedValue(), kUTTypeImage)
}

let fileExtension = "jpg"
if isFileFormatSupported(fileExtension: fileExtension) {
    print("File format \(fileExtension) is supported.")
} else {
    print("File format \(fileExtension) is not supported.")
}

위의 예제 코드에서는 isFileFormatSupported() 함수를 사용하여 파일 확장자를 전달하면 해당 확장자의 파일 포맷이 이미지인지 확인합니다. 반환값은 Bool로 나타나며, 지원되는 파일 포맷이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

결론

Swift에서는 파일의 MIME 타입을 통해 파일의 특정 포맷을 확인할 수 있습니다. URLResourceValues를 사용하여 파일의 MIME 타입을 가져오거나, UTType 클래스를 사용하여 지원되는 파일 포맷을 확인할 수 있습니다. 이러한 기능을 활용하여 파일 포맷에 따라 작업을 수행할 수 있습니다.

참고 자료