English 中文(简体)
How does the Mac OS X Finder recognize a PNG file?
原标题:

I have a file which was originally named foo in the Finder. If I get info for the file, the Finder recognizes it as "Kind: Plain text". If I rename the file as foo.png , Finder then recognizes it as "Kind: Portable Network Graphics image". If I rename the file as foo , Finder still recognizes it as "Kind: Portable Networks Graphics image" (not plain text like I expected).

How is Mac OS X recognizing the file kind?

问题回答

Magic numbers in the file is usually how it works. A PNG file, for example, has a header to identify it as PNG and not some other file format. Wikipedia has some more info.

I don t know how it works, but I can imagine that until you renamed the file to foo.png Finder didn t know and didn t care what type it is. But after you ve renamed it Finder stored it s type somewhere (.DS_Store perhaps?) with the inode ID so it could recognize this file even after you rename it again.

Because *NIX systems (like Mac OS X) don t rely on extensions to recognize file types. They rely on something called Magic Number (if I remember well), that is, they search for common patterns found in those types of file (e.g headers, tags, metainfo etc.) and they recognize them.





相关问题
2 mysql instances in MAC

i recently switched to mac. first and foremost i installed xampp. then for django-python-mysql connectivity, i "somehow" ended up installing a seperate MySQL. now the seperate mysql installation is ...

Iterating over string/strlen with umlauted characters

This is a follow-up to my previous question . I succeeded in implementing the algorithm for checking umlauted characters. The next problem comes from iterating over all characters in a string. I do ...

Controlling OSX windows

I m trying to control windows of a foreign OSX applications from my application. I d like to 1. move the windows on the screen 2. resize the windows on the screen 3. change the currently active window ...

Switching J2SE versions on Mac OS (SnowLeopard)

My current JDK on Mac OS (10.6) is set to 1.6 and I d like to switch to 1.5. A listing of /System/Library/Frameworks/JavaVM.framework/Versions/ shows: lrwxr-xr-x 1 root wheel 10 Nov 3 18:34 ...

Scrolling inside Vim in Mac s Terminal

I ve been googling around trying to figure out if it s possible to use my mouse wheel to scroll while inside Vim in Mac s Terminal, with no luck. It seems as if only X11 or iTerm support this. Before ...

export to MP3 from quicktime API

A question for Apple,QT programmers. Would like to know if it s possible to export a Movie object to MP3 using the QuickTime API. Preferably the ConvertMovieToFile function. I ve looked at ...

热门标签