2009-11-16 39 views
2

我有一个文件,最初在Finder中被命名为'foo'。如果我获得了该文件的信息,Finder会将其识别为“Kind:Plain text”。如果我将文件重命名为'foo.png',Finder会将其识别为“Kind:Portable Network Graphics图像”。如果我将文件重命名为'foo',Finder仍然会将其识别为“Kind:Portable Networks Graphics图像”(不像我期望的纯文本)。Mac OS X Finder如何识别PNG文件?

Mac OS X如何识别文件类型?

回答

1

因为* NIX系统(如Mac OS X)不依赖扩展来识别文件类型。他们依赖于Magic Number(如果我记得很清楚),也就是说,他们搜索这些类型的文件中找到的常见模式(例如标题,标记,元信息等),并识别它们。

+6

实际上,这是Mac OS X的* not * true。它使用一个复杂的系统来查看扩展和其他元数据,自从OS X 10.3以来,它已经被组合到统一类型标识符(http:// developer .apple.com/macosx/uniformtypeidentifiers.html)苹果自那时以来一直在调整每一个版本。 – 2009-11-17 00:44:57

+0

@ NedDeily的有用链接的新URL:https://developer.apple.com/library/mac/#documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html – 2012-03-12 20:11:54

2

文件中的幻数通常是如何工作的。例如,一个PNG文件有一个标题来标识它为PNG而不是其他文件格式。 Wikipedia有更多信息。

1

我不知道它是如何工作的,但我可以想象,直到你将文件重命名为foo.png Finder并不知道它并不关心它是什么类型。但重命名后,Finder将其存储在某处(.DS_Store也许?)与inode ID相关联,因此即使在您重新命名该文件后,它也可以识别该文件。