在Finder.app中,您可以点击Enter以编辑当前所选文件或文件夹的名称。
OS X将仅自动选择文件名部分,而不选择扩展名:

这非常有用,因为这样您就可以开始输入新名称,而不必担心意外更改文件扩展名。
但是,这似乎仅适用于“已知”文件类型。如果尝试使用未知扩展名,则会选择整个文件名(包括扩展名):

我尝试映射可以.bar通过⌘+ I→“全部更改” 打开所有文件的应用程序,但仍然出现上述行为。
“已知”文件类型列表存储在哪里?有没有一种方法可以使OS X识别新文件类型?
在Finder.app中,您可以点击Enter以编辑当前所选文件或文件夹的名称。
OS X将仅自动选择文件名部分,而不选择扩展名:

这非常有用,因为这样您就可以开始输入新名称,而不必担心意外更改文件扩展名。
但是,这似乎仅适用于“已知”文件类型。如果尝试使用未知扩展名,则会选择整个文件名(包括扩展名):

我尝试映射可以.bar通过⌘+ I→“全部更改” 打开所有文件的应用程序,但仍然出现上述行为。
“已知”文件类型列表存储在哪里?有没有一种方法可以使OS X识别新文件类型?
Answers:
此SuperUser帖子对我有用:
您需要浏览至要用于打开这些文件的应用程序,然后编辑其捆绑包。右键单击该应用程序以处理这些文件扩展名,然后选择显示包内容。导航至
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(和任何其他已签名应用程序)的代码签名。
xxx.bar并选择open with?
                    “已知”文件类型列表存储在哪里?
“文件类型”的正式术语是 统一类型标识符 (UTI),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
要查看启动服务数据库的内容:
lsregister -dump
有没有一种方法可以使OS X识别新文件类型?
苹果公司的这篇文章 “声明新的统一类型标识符”提供了有关如何执行此操作的有用信息。这是完整的过程:
创建一个虚拟应用程序以注册启动服务:
有两个键可供选择:
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.mytypecom.idsoftware.wadEXTENSION为文件扩展名(不带前导点),例如:wad。这是启动服务接受新的UTI所需的最低代码。您还可以添加以下可选属性:
UTTypeConformsTo –请参阅下面的附录。UTTypeDescription –用户可见的描述,将显示在Finder中。UTTypeIconFile–如果将Apple Icon Image 
文件添加到虚拟应用程序的Contents / Resources文件夹中,并在此属性中添加其文件名,则具有新文件名扩展名的文件将使用此图标。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>
在终端中运行以下命令:
lsregister <PATH_TO_APP>
用<PATH_TO_APP>您的虚拟应用程序的路径替换,例如:
lsregister ~/Desktop/MyDummyApp.app
如果现在创建带有新文件扩展名的文件,然后在Finder中选择它并单击Enter,则Finder应该自动仅选择文件名部分,而不选择扩展名。
如果您查看启动服务数据库的内容:
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
OS X声明了此处列出的UTI的层次结构: 系统声明的统一类型标识符。
这是层次结构中的一些UTI:
public.content
public.text
public.rtfpublic.htmlpublic.xmlpublic.plain-textpublic.source-code
public.c-sourcepublic.c-headercom.sun.java-sourcepublic.image
public.jpegpublic.tiffpublic.pngpublic.audiovisual-content
public.moviepublic.audio每个UTI“符合”其父UTI:
例如,
public.html定义HTML文本的UTI 符合基本文本标识符public.text。在这种情况下,一致性可使可以打开常规文本文件的应用程序将HTML文件标识为也可以打开的HTML文件。(参考)
创建新的UTI时,最好将UTTypeConformsTo属性设置为现有的UTI之一。
例如,如果你的新UTI是一种类型的源代码,那么你应该设置的UTTypeConformsTo属性public.source-code,以便它可以通过可以打开任何应用程序打开
 public.source-code或public.plain-text或public.text文件。
CFBundleTypeExtensions是遗留密钥,在OS X 10.5中已弃用。自2007年以来最好的方法是宣布新的尿路感染,提到这里,并在描述我的答案。