En Finder.app, puede presionar Enterpara editar el nombre del archivo o carpeta seleccionado actualmente.
OS X seleccionará automáticamente solo la parte del nombre del archivo, no la extensión:
Esto es muy útil, porque de esa manera puede comenzar a escribir el nuevo nombre, sin preocuparse por cambiar accidentalmente la extensión del archivo.
Sin embargo, esto solo parece funcionar para tipos de archivos "conocidos". Si lo intenta con una extensión desconocida, se selecciona el nombre completo del archivo (incluida la extensión):
Intenté mapear una aplicación que puede abrir todos los .bar
archivos a través de ⌘+ I→ "Cambiar todo", pero sigo teniendo el comportamiento descrito anteriormente.
¿Dónde se almacena la lista de tipos de archivos "conocidos"? ¿Hay alguna manera de hacer que OS X reconozca nuevos tipos de archivos?
Esta publicación de SuperUser funcionó para mí:
Debe buscar la aplicación que le gustaría usar para abrir estos archivos y editar su paquete. Haga clic con el botón derecho en la aplicación para manejar estas extensiones de archivo y seleccione Mostrar contenido del paquete . Navegue hasta
Contents
y editeInfo.plist
. Es posible que necesite el Editor de listas de propiedades , que forma parte de las herramientas de desarrollo de Apple. Si tienes suerte, está en formato XML. Edite este archivoCFBundleDocumentTypes
y agregue una entrada para la extensión que desee.
Usé TextEdit como la aplicación predeterminada para abrir .bar
archivos. Lo único que hice de manera diferente fue cambiar el XML que entró en TextEdit Info.plist
a:
<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>
…y luego usé LSRefresh.app para actualizar TextEdit en la base de datos de servicios de lanzamiento. Luego funcionó como sugirió, aunque probablemente romperá la firma del código de Textedit (y cualquier otra aplicación firmada) en Lion.
¿Dónde se almacena la lista de tipos de archivos "conocidos"?
El término oficial para "tipos de archivo" es Identificadores de tipo uniforme (UTI), y Launch Services mantiene la base de datos de UTI .
Usando la Terminal , puede ver el contenido de la base de datos de Launch Services usando la lsregister
herramienta, que se almacena en:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister
En lugar de especificar esa ruta larga cada vez que desee ejecutar lsregister
, puede agregar temporalmente su directorio a su PATH
:
PATH=/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:"$PATH"
y luego puede ejecutar lsregister
simplemente ingresando:
lsregister
Para ver el contenido de la base de datos de Launch Services:
lsregister -dump
¿Hay alguna manera de hacer que OS X reconozca nuevos tipos de archivos?
Este artículo de Apple, "Declaración de nuevos identificadores de tipo uniforme" , proporciona información útil sobre cómo hacerlo. Aquí está el proceso completo:
Cree una aplicación ficticia para registrarse en los Servicios de lanzamiento:
Hay una opción de dos llaves:
UTExportedTypeDeclarations
– para sus propias extensiones de nombre de archivo personalizadas.UTImportedTypeDeclarations
– para extensiones de nombre de archivo que ya existen pero que OS X no reconoce.Elija la clave que sea más apropiada para sus necesidades.
Luego, en el archivo Info.plist , antes de las dos últimas líneas ( </dict></plist>
), agregue este código:
<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>
haciendo los siguientes cambios:
KEY
con la clave elegida (ya sea UTExportedTypeDeclarations
o UTImportedTypeDeclarations
).IDENTIFIER
con un identificador de DNS inverso adecuado:
com.mycompany.mytype
com.idsoftware.wad
EXTENSION
con la extensión del nombre de archivo (sin el punto inicial), por ejemplo: wad
.Este es el código mínimo necesario para que Launch Services acepte su nueva UTI. También puede agregar las siguientes propiedades opcionales:
UTTypeConformsTo
– Consulte el Apéndice a continuación.UTTypeDescription
– Una descripción visible para el usuario, que se mostrará en el Finder.UTTypeIconFile
– Si agrega un archivo de imagen de ícono de Apple a la carpeta Contenidos/Recursos en su aplicación ficticia y agrega su nombre de archivo en esta propiedad, los archivos que tengan su nueva extensión de nombre de archivo usarán este ícono.UTTypeReferenceURL
– La URL de un documento de referencia que describe este tipo.Aquí hay un ejemplo completo que muestra todas las propiedades opcionales:
<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>
Ejecute este comando en la Terminal:
lsregister <PATH_TO_APP>
reemplazando <PATH_TO_APP>
con la ruta a su aplicación ficticia, por ejemplo:
lsregister ~/Desktop/MyDummyApp.app
Si ahora crea un archivo con su nueva extensión de nombre de archivo y luego lo selecciona en el Finder y presiona Enter, el Finder debería seleccionar automáticamente solo la parte del nombre del archivo, no la extensión.
Si ve el contenido de la base de datos de Launch Services:
lsregister -dump
debería encontrar su nueva UTI en la lista:
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
Si posteriormente deseas dar de baja tu nueva UTI, pasa la -u
opción a lsregister
:
lsregister -u ~/Desktop/MyDummyApp.app
OS X declara una jerarquía de UTI que se enumeran aquí: Identificadores de tipo uniforme declarados por el sistema .
Aquí hay algunas UTI en la jerarquía:
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
Cada UTI "se ajusta a" su UTI principal:
Por ejemplo, la UTI
public.html
, que define el texto HTML, se ajusta al identificador de texto base,public.text
. En este caso, la conformidad permite que las aplicaciones que pueden abrir archivos de texto generales identifiquen los archivos HTML como archivos que también pueden abrir. ( referencia )
Al crear una nueva UTI, es una buena idea establecer la UTTypeConformsTo
propiedad en una de las UTI existentes.
Por ejemplo, si su nueva UTI es un tipo de código fuente, debe establecer la UTTypeConformsTo
propiedad en public.source-code
, para que pueda ser abierta por cualquier aplicación que pueda abrir archivos public.source-code
or public.plain-text
o .public.text
Sigue estos pasos:
Seleccione el archivo con extensión no reconocida (por ejemplo, .txt
).
Haga clic derecho y seleccione Get Info
o use el atajo de teclado Commandipara mostrar la ventana de información.
Haga clic en el indicador de divulgación además de Abrir con: para abrir la vista detallada. Seleccione la aplicación deseada del menú desplegable. Esto asociará el documento con la aplicación elegida (por ejemplo, TextEdit).
Haga clic en el botón Cambiar todo.... Primero mostrará un cuadro de diálogo que le pedirá que confirme su intención y vinculará todos los .txt
documentos para abrirlos con TextEdit, y dejará la extensión sin seleccionar cuando presione regresar en el nombre del documento.
taquionvortex
CFBundleTypeExtensions
es una clave heredada que quedó obsoleta en OS X 10.5 . El método preferido desde 2007 es declarar nuevas infecciones urinarias, como se menciona aquí y se describe en mi respuesta .Beto
marcapasos
xxx.bar
y seleccionasopen with
?marcapasos
Beto
Gwyneth Llewelyn