Finder.app Enter에서 현재 선택된 파일 또는 폴더의 이름을 편집 할 수 있습니다 .
OS X은 확장자가 아닌 파일 이름 부분 만 자동으로 선택합니다.
실수로 파일 확장명을 변경하지 않아도 새 이름을 입력 할 수 있으므로 매우 유용합니다.
그러나 이것은 “알려진”파일 형식에서만 작동하는 것 같습니다. 알 수없는 확장자로 시도하면 확장자를 포함한 전체 파일 이름이 선택됩니다.
+ → “모두 변경”을 .bar
통해 모든 파일을 열 수있는 응용 프로그램을 매핑하려고 했지만 여전히 위에서 설명한 동작이 나타납니다.⌘I
“알려진”파일 형식 목록은 어디에 저장됩니까? OS X이 새로운 파일 형식을 인식하도록하는 방법이 있습니까?
답변
이러한 파일을 여는 데 사용하려는 애플리케이션을 찾아 번들을 편집해야합니다. 애플리케이션을 마우스 오른쪽 단추로 클릭하여 이러한 파일 확장자를 처리하고 패키지 컨텐츠 표시를 선택하십시오 . 로 이동하여
Contents
편집하십시오Info.plist
. Apple 개발자 도구의 일부인 속성 목록 편집기 가 필요할 수 있습니다 . 운이 좋으면 XML 형식입니다. 이 파일을 편집CFBundleDocumentTypes
하고 원하는 확장명에 대한 항목을 추가하십시오.
TextEdit을 기본 응용 프로그램으로 사용하여 .bar
파일 을 열었습니다 . 내가 다르게 한 것은 TextEdit에 들어간 XML을 다음과 같이 변경하는 것이 었 Info.plist
습니다.
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>bar</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>BarDocument</string>
<key>CFBundleTypeName</key>
<string>Bar Document</string>
<key>CFBundleTypeRole</key>
<string>Document</string>
</dict>
… 그리고 LSRefresh.app 를 사용 하여 시작 서비스 데이터베이스에서 TextEdit를 새로 고 칩니다 . 그러면 Lion에서 Textedit (및 기타 서명 된 응용 프로그램)의 코드 서명이 손상 될 수 있지만 제안한대로 작동했습니다.
답변
UTI 및 출시 서비스
“알려진”파일 형식 목록은 어디에 저장됩니까?
“파일 유형”의 공식 용어는
UTI ( Uniform Type Identifiers )이며 UTI 데이터베이스는 Launch Services에서 유지 보수
합니다 .
터미널을 사용하면 다음 lsregister
위치에 저장된 도구를 사용하여 Launch Services 데이터베이스의 내용을 볼 수 있습니다 .
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister
실행할 때마다 긴 경로를 지정하는 대신 lsregister
임시로 디렉토리를 다음에 추가 할 수 있습니다 PATH
.
PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"
다음을 lsregister
입력하여 실행할 수 있습니다 .
lsregister
Launch Services 데이터베이스의 내용을 보려면
lsregister -dump
새로운 UTI 선언
OS X이 새로운 파일 형식을 인식하도록하는 방법이 있습니까?
이 Apple 기사
“New Uniform Type Identifiers 선언” 은이를 수행하는 방법에 대한 유용한 정보를 제공합니다. 전체 과정은 다음과 같습니다.
1. 더미 응용 프로그램 만들기
Launch Services에 등록 할 더미 애플리케이션을 작성하십시오.
- AppleScript 편집기를 엽니 다 (OS X의 유틸리티 폴더에 있음).
- 파일 형식 을 응용 프로그램으로 설정하여 비어있는 새 스크립트를 어딘가에 저장하십시오 (예 : 데스크탑) .
Info.plist 파일을 엽니 다
- Finder에서 새로운 더미 응용 프로그램을 찾으십시오.
- 마우스 오른쪽 버튼으로 클릭 하고 팝업 메뉴에서 패키지 내용보기를 선택하십시오 .
- 오픈 컨텐츠 폴더에 있습니다.
- 열기 의 Info.plist의 (: 예를 들어, 텍스트 편집기에서 파일을 텍스트 편집기 ).
3. 새로운 UTI 추가
두 가지 키 중에서 선택할 수 있습니다.
UTExportedTypeDeclarations
– 사용자 정의 파일 이름 확장자입니다.UTImportedTypeDeclarations
– 이미 존재하지만 OS X에서 인식하지 못하는 파일 이름 확장자의 경우.
필요에 가장 적합한 키를 선택하십시오.
그런 다음 Info.plist 파일에서 마지막 두 줄 ( </dict></plist>
) 전에이 코드를 추가하십시오.
<key>KEY</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>IDENTIFIER</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>EXTENSION</string>
</array>
</dict>
</dict>
</array>
다음과 같이 변경하십시오.
KEY
선택한 키 (UTExportedTypeDeclarations
또는UTImportedTypeDeclarations
)로 교체하십시오 .IDENTIFIER
적합한 역방향 DNS 식별자로 교체하십시오 .- 수출 – 같은 것
com.mycompany.mytype
- 가져 오기 – id Software 의
Doom WAD 형식의 경우 적절한 식별자는 다음과 같습니다.com.idsoftware.wad
- 수출 – 같은 것
- 다음
EXTENSION
과 같이 파일 이름 확장자 (앞의 점없이)로 바꾸십시오wad
.
Launch Services가 새 UTI를 수락하는 데 필요한 최소 코드입니다. 다음과 같은 선택적 속성을 추가 할 수도 있습니다.
UTTypeConformsTo
– 아래 부록을 참조하십시오.UTTypeDescription
– 사용자가 볼 수있는 설명으로, Finder에 표시됩니다.UTTypeIconFile
– 더미 응용 프로그램
의 Contents / Resources 폴더에 Apple Icon Image 파일을 추가하고이 속성에 파일 이름을 추가하면 새 파일 이름 확장자를 가진 파일이이 아이콘을 사용합니다.UTTypeReferenceURL
–이 유형을 설명하는 참조 문서의 URL.
다음은 모든 선택적 속성을 보여주는 완전한 예입니다.
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>com.idsoftware.wad</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>wad</string>
</array>
</dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>Doom WAD file</string>
<key>UTTypeIconFile</key>
<string>DoomWAD.icns</string>
<key>UTTypeReferenceURL</key>
<string>http://en.wikipedia.org/wiki/Doom_WAD</string>
</dict>
</array>
4. Launch Services에 새로운 UTI를 등록하십시오
터미널에서이 명령을 실행하십시오.
lsregister <PATH_TO_APP>
<PATH_TO_APP>
더미 응용 프로그램의 경로로 대체 하십시오. 예 :
lsregister ~/Desktop/MyDummyApp.app
이제 새로운 파일 이름 확장자를 가진 파일을 만든 다음 EnterFinder에서 파일을 선택하고을 누르면 파인더가 확장자가 아닌 파일 이름 부분 만 자동으로 선택해야합니다.
Launch Services 데이터베이스의 내용을 보는 경우 :
lsregister -dump
새 UTI가 다음과 같이 나열되어 있어야합니다.
type id: 50364
bindableKey: 12608
generation: 1
uti: com.idsoftware.wad
description: Doom WAD file
flags: imported active apple-internal untrusted
icon: DoomWAD.icns
conforms to: public.data
tags: .wad
나중에 새 UTI를 등록 취소하려면 -u
옵션을 lsregister
다음으로 전달하십시오 .
lsregister -u ~/Desktop/MyDummyApp.app
부록 : UTI 계층 구조 및 적합성
OS X은 UTI의 계층 구조를 선언하며 여기에는 System-Declared Uniform Type Identifiers 가 나열됩니다
.
계층 구조에 몇 가지 UTI가 있습니다.
public.content
public.text
public.rtf
public.html
public.xml
public.plain-text
public.source-code
public.c-source
public.c-header
com.sun.java-source
public.image
public.jpeg
public.tiff
public.png
public.audiovisual-content
public.movie
public.audio
각 UTI는 상위 UTI를 “준수”합니다.
예를 들어,
public.html
HTML 텍스트를 정의 하는 UTI 는 기본 텍스트 식별자 인을 따릅니다public.text
. 이 경우 준수를 통해 일반 텍스트 파일을 열 수있는 응용 프로그램은 HTML 파일을 열 수있는 것으로 식별 할 수 있습니다. ( REF )
새 UTI를 만들 때는 UTTypeConformsTo
속성을 기존 UTI 중 하나로 설정하는 것이 좋습니다 .
예를 들어, 새 UTI가 소스 코드 유형 인 경우 또는 파일을 열 수있는 모든 애플리케이션에서 열 수 있도록
UTTypeConformsTo
특성을로 설정해야 합니다.public.source-code
public.source-code
public.plain-text
public.text
답변
다음과 같이하세요:
-
인식 할 수없는 확장자를 가진 파일을 선택하십시오 (예 🙂
.txt
. -
마우스 오른쪽 버튼을 클릭하고
Get Info
키보드 단축키 Commandi를 선택 하거나 사용 하여 정보 창을 표시하십시오. -
연결 프로그램 : 옆에있는 공개 표시기를 클릭하면 상세보기가 열립니다. 드롭 다운에서 원하는 앱을 선택하십시오. 그러면 문서가 선택한 응용 프로그램과 연결됩니다 (예 : TextEdit).
-
모두 변경 … 버튼을 클릭하십시오 . 먼저 의도를 확인하라는 대화 상자가 표시되고
.txt
TextEdit으로 열 모든 문서를 연결하고 문서 이름에서 return 키를 누르면 확장명이 선택되지 않은 상태로 유지됩니다.