Quiero tener una extensión, el nombre .contenido, para almacenar todos los archivos que están vinculados al nombre del archivo. La extensión ".contenido" debe ser reconocido por el sistema operativo como una extensión de archivo en lugar de un mapa. Los archivos de la extensión debe ser alcanzada solamente por la apertura de la extensión por la opción "Mostrar Contenido del Paquete". Espero que alguien me puede ofrecer una solución a mi problema.
Respuestas
¿Demasiados anuncios?OS X incluye un conjunto de extensiones que se asignan a aplicaciones específicas (y la mayoría de estos mapas de Apple siempre apps) por lo que podría petición de Apple para hacer el cambio, pero eso sería raro.
El otro mecanismo para inyectar una específica .extensión de la asignación de Aplicación en la puesta en marcha de los Servicios de base de datos es instalar una Aplicación que cuenta el sistema para asignar ciertos tipos de archivos y extensiones que se concreta la Solicitud.
Así que, para mantener las cosas en el tema aquí vamos a dirigir a Stack Overflow para preguntar cómo hacer su propia Aplicación. Si usted no está buscando a desarrollar una aplicación, también se puede simplemente modificar la aplicación que desea abrir su extensión de archivo personalizado cambiando es interal info.plist archivo:
- Acerca de la Información de Propiedad de la Lista de Archivos de OS X Aplicaciones
Lo siento si este nivel de detalle es más técnico de lo que quieras, pero yo quería responder a esta para cualquiera que necesite saber cómo modificar las cosas.
Las carpetas que terminan con .paquete ya actuar de esa manera. Se abren en la Terminal por defecto, aunque.
El tipo de archivo se define en /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist
:
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>com.apple.bundle</string>
<string>com.apple.package</string>
</array>
<key>UTTypeDescription</key>
<string>bundle</string>
<key>UTTypeIdentifier</key>
<string>com.apple.generic-bundle</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>BNDL</string>
<key>public.filename-extension</key>
<string>bundle</string>
</dict>
</dict>
Para hacer las carpetas que terminan con .el contenido de ser tratados como los paquetes, agregar una entrada como esta:
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>com.apple.bundle</string>
<string>com.apple.package</string>
</array>
<key>UTTypeIdentifier</key>
<string>my.content</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>content</string>
</dict>
</dict>
Luego reconstruir el Lanzamiento de los Servicios de base de datos para aplicar los cambios:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user
También puede agregar esto a una CFBundleDocumentTypes matriz en la Información.plist de cualquier aplicación:
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>content</string>
</array>
<key>CFBundleTypeRole</key>
<string>None</string>
<key>LSTypeIsPackage</key>
<true/>
</dict>
Para aplicar los cambios, la reconstrucción de los Servicios de Lanzamiento de la base de datos o toque el paquete de la aplicación. Si la solicitud no está firmada, la modificación de la Información.plist invalida la firma de código , aunque.