AppleSingle
Mac OSではひとつのファイルに、データフォーク、リソースフォークという2つのフォークがあり、更に様々なメタデータ(コメント、ファイル時刻、Finder情報等)がある。特にファイル時刻には作成時刻、変更時刻、バックアップ時刻、アクセス時刻がある。Finder情報はクリエータとファイルタイプを含んでいる。
これらを扱えるのはHFSやHFS+といったファイルシステムやファイル共有プロトコルのAFPしかない。それ以外のファイルシステムではデータフォーク程度しか扱えない。
AppleSingleは2つのフォークと様々なメタデータを1つのファイルにまとめて保存するフォーマットである。
AppleDoubleは2つのファイルに分離して保存するフォーマットである。1つ目はAppleDouble Data fileといい、データフォークそのものである。2つ目はAppleDouble Header fileといい、データフォーク以外を全て含む。これはAppleSingleからデータフォークを除き、マジックナンバーを変えただけのものである。
macOSがHFS、HFS+、AFP以外のファイルシステム、すなわちUFS、FAT、SMB、NFS、WebDAVといったファイルシステムにファイルを保存する際、AppleDouble バージョン2を用いる。すなわちAppleDouble Data file (データフォーク)を本来のファイル名で保存し、AppleDouble Header fileを「._」を先頭に付けたファイル名で保存する。
Mac OS X v10.3 Panther以降のFinderの機能(BOMArchiveHelper)でZIP圧縮した場合、__MACOSXという名前のフォルダを作ってその中にAppleDouble Header fileを保存する。ただしコマンドラインの/usr/bin/zipだとデータフォークのみが扱われる。
Mac OS X v10.4 Tiger以降の/usr/bin/tarコマンドでは、AppleDouble Header fileを「._」を先頭に付けたファイル名で保存する。また、このバージョン以降は拡張属性 (EA)を使うことができるため、AppleDouble バージョン2を拡張してEAも保存できるようになった。これは本来32バイトであるFinder情報の保存領域を拡張し、Finder情報の後ろにEAを追加記録するというものである。これにより従来のバージョン2と互換性がない。
Mac OS X v10.5迄は、拡張属性をサポートしないAFPサーバにファイルを保存すると拡張属性が失われた。Mac OS X v10.6では、こうしたサーバに保存する際、先頭に「._」を付けたファイル名でバージョン2のファイルをつくり、これに拡張属性を格納する。