在OS X上,如何更改文件的“种类”?


16

在OS X上,我想更改与文件关联的“种类”标签。当我的许多文件实际上是javascript,php,css和其他文件类型时,它们都显示为“纯文本文件”

我没有问题让它们打开我想要的应用程序,这很容易做到-上面有很多线程。

让我感到困扰的是,当我有一个包含很多文件的大文件夹时,我希望能够按种类排序,并将所有的css,所有的php和所有的js文件放在一起。

在此处输入图片说明

我看到文件类型在OSX上崩溃,并且看到了 quickchange,但是我不确定这是否是我真正需要的。

也许其他人以前已经处理过这个,并且知道如何解决?


有趣。它似乎涉及到名副其实的命令行实用程序file
dmckee ---前主持人小猫,

当然,您可以只将TextWrangler之类的内容设置为JS,PHP和CSS文件的默认文件处理程序?然后它将它们列为TextWrangler文件。

我认为问题可能出在尾声上。Daniel Beck帮助解决了以下问题。但是,还有一个后续问题:那么我发现(上面)的quickchange实用程序是做什么用的?它有一个4字母“类型”和一个4字母“创建者”的东西...?
cwd

Answers:


8

文件类型通常由在Launch Services中处理该文件类型的应用程序设置。对于大多数文件,这是默认情况下打开文件类型的应用程序,在您的情况下为Coda。

应用程序在其Contents/Info.plist文件中指定文件类型。您可以通过右键单击应用程序捆绑包并选择Show Package Contents来查看和编辑它。

恐慌症患者似乎弄乱了某些东西。他们定义的所有文件类型是PlainTextType

在此处输入图片说明

您可以通过Document Type Name属性列表编辑器中编辑所有条目,或CFBundleTypeName在普通文本编辑器中编辑文件时的所有条目来更改文件类型的名称。只需替换您要显示为描述的内容即可。

在此处输入图片说明

编辑,保存并确保启动服务通知(重新启动,注销,或仅将应用程序移至其他文件夹然后再次移回),结果如下所示:

在此处输入图片说明


每当有应用程序更新时,您都需要重复此操作,因为它们会替换Info.plist您编辑的文件。最好向Panic的开发人员报告错误。


并且Panic的人员会(可能)报告说.php,.js或.css文件仍然是纯文本文件。它的语义,这不是UTI的目的。这不是一个新的辩论;UTI自成立以来就一直被误解和滥用,部分原因是因为这个问题,苹果以其无穷的智慧至今仍无所作为。
Peelman 2011年

@peelman Apple在TextEdit的中不这样做Info.plist。他们实际上能够提供正确的文档类型名称。并且用户比UTI的技术方面更关注Finder的Kind列。
丹尼尔·贝克

@db-PListEdit Pro与属性列表编辑器是否相同?我是第一个,我的屏幕看起来有些不同。感谢您提供一个相当全面的答案:)
cwd

nm,刚刚在/Developer/Applications/Utilities文件夹中找到了Property List Editor 。我没有QS对该文件夹进行分类。哎呀
cwd

我一直在寻找这些线路上的东西,但是是否有可能改变取景器管理排序的方式,如此处所述
Konrad

2

当我升级到Office 2016并删除Office 2011时,我发生了这种情况- 尽管我没有安装GraphViz,但Finder .dot仍将文件(MS Word 97-2004模板)确定为GraphViz DOT文件,并决定将Nisus Writer作为默认应用程序。

我设法在Finder中轻松修复了默认应用程序(获取信息/打开方式:/全部更改...),但是文件类型仍然错误。根据丹尼尔·贝克的回答,我检查了Info.plistsWord 2016和Nisus Writer的语言,但它们都是正确的。

我最后不得不重建发射服务注册表

/System/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -kill -r -domain local -domain system -domain user

(来自终端),最终将其修复。


1

由保存程序决定给定文件的UTI(统一类型标识符)。如果您设法更改它们,然后在将它们设置为纯文本的任何程序中编辑文件,则在重新保存时它们很可能会恢复为纯文本。

从技术上讲,这些文件是纯文本,任何支持纯文本UTI的编辑器都可以打开它们,这是UTI服务的目的,因此这不是准确性,而是一种语义练习。我个人通过将图像,样式表和javascript文件放在子文件夹中来避免此类问题。

无论如何,您可能都需要搜索所选的编辑器,看看它是否支持定义UTI->文件扩展名关系的方法,或者支持定义文件所使用的UTI的方法。


1

可以通过在CoreTypes.bundle中编辑InfoPlist.strings来更改OS X 核心类型描述。

属性列表是编译后的二进制文件,以防万一在编辑之前进行备份系统更新可能会覆盖它,因此请保留一份副本或(我建议)将编辑后的版本链接到原始位置-假设您的副本是命名InfoPlist.strings.custom为,并且 原始目录相同

cd /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj

cp InfoPlist.strings InfoPlist.strings.custom -您的自定义副本

mv InfoPlist.strings InfoPlist.strings.backup -移动原始

InfoPlist.strings.custom使用TextMate打开,因为它很好地解析了二进制属性列表,并假设您mate已安装:

mate /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj/InfoPlist.strings.custom

完成编辑后,将原始文件链接到位:

sudo ln -s /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj/InfoPlist.strings.custom /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/English.lproj/InfoPlist.strings

并重新启动Finder killall Finder–之后,您应该会在Finder中看到更改。

例如,我更改"Portable Document Format (PDF)" = "Portable Document Format (PDF)";"Portable Document Format (PDF)" = "PDF";...然后说再见,以在Finder中烦人的长“ Kind”字符串:-)

之前 之后在此处输入图片说明 在此处输入图片说明

注意:我使用英语作为系统语言-如果您设置了其他语言,则需要将目录名更改为适当的语言:

cd /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/德语.lproj/ <-例如,假设德语

更新1(有关plutil的信息):

您可以plutil用来将二进制格式转换为XML或JSON

sudo plutil -convert json InfoPlist.strings -o InfoPlist.strings.json

编辑.json后,将其转换(编译?)回二进制格式:

sudo plutil -convert binary1 InfoPlist.strings.json -o InfoPlist.strings

更新2

想找出这个烦人的“种类”字符串在哪里?

sudo find ./ -name '*.plist' -o -name '*.strings' -exec plutil -p {} \; | grep"annoying"烦人annoying事情在哪里


0

看看duti

在OS X上使用命令行工具选择文件类型的默认应用程序

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.