macOS: Get UTI (Ventura)

macOS 13 Ventura で以下の関数が使えなくなった件。

# Deprecated
UTTypeCreatePreferredIdentifierForTag

UTI を調べる方法にて検索するとメッチャ見つかります。
でももう使えません、別の方法を探す。

UTType | Apple Developer Documentation

UTType クラスに typeWithFilenameExtension メソッドがある。
+ だから static method ですね、これ使えるかも。
以下 PyObjC です、他言語の人は変換してね。

#!/usr/bin/env python3

'''
    PyObjC @ Get UTI
'''

import sys, UniformTypeIdentifiers

for filename in sys.argv[1:]:
    n = filename.rfind('.') + 1
    if n > 0:
        ext = filename[n:]
        uti = UniformTypeIdentifiers.UTType.typeWithFilenameExtension_(ext)
        print(f'{ext}: {uti}')


''' Deprecated

import sys, CoreServices

for ext in sys.argv[1:]:
    uti = CoreServices.UTTypeCreatePreferredIdentifierForTag(
        CoreServices.kUTTagClassFilenameExtension, ext, None)
    arr = CoreServices.UTTypeCopyDeclaration(uti)['UTTypeConformsTo']
    con = ','.join(arr)
    print(f'{ext}: {uti} [{con}]')
'''

# ex: ft=py

get uti

よしデジカメ RAW ファイルでも問題なく UTI が得られるぞと。
本サイトのほうも書き換えしておきます。
しかし以前貼ったスクリプトで WebP 化したけど文字がチト見づらいな。
これも要改良かな、ということで。

aoji

今日はアオジが撮れました。