2017-01-07

FAT32ボリュームの作成日が1970年1月1日と表示される

新年のお茶会で、知人のK氏から、Macを使って MS-DOS (FAT32) 形式でUSBフラッシュドライブ(USBメモリー)をフォーマットすると、Finderの情報に表示される「作成日」が(いつフォーマットしても)必ず1970年1月1日になっちゃうんだけど、どうして? 変じゃない? と聞かれた。

それは、たぶん、FATファイルシステムには作成日付を格納する領域がないからでしょう。

と、答えたものの、どこか引っかかるものがあったので調べてみた。

macOS Sierra 10.12.2 でFAT32のメディアを確認して見ると、

確かに 1970年1月1日 と表示されている。

Microsoft が配布している「FAT32 File System Specification」と、FATファイルシステムの国際規格 ISO/IEC 9293:1994 に相当する日本工業規格 JIS X 0605:1997 を調べてみたが、やはりボリュームの作成日は記録されないものとみてよさそうだ。

しかも、仕様によればFATファイルシステムのあつかう日付の範囲は 1980年〜2107年 となっている。

ボリュームの作成日が 1970年1月1日 なんてことはFATの仕様上ありえない。

ルートディレクトリーのエントリーに含まれる作成日付フィールド DIR_CrtTimeTenth, DIR_CrtTime, DIR_CrtDate にゼロ(0)を格納して、作成日付を無視する、あるいは予約領域としてあつかっているメディアから読み出したデータを、あえて、どうしても、なにがなんでも日付として表示したいなら 1980年1月1日 でなければなるまい。

あまり気にしていなかったとはいえ、自分では変だと感じた記憶がない。昔からこんなだったっけ? と疑問に思って過去に遡ってみると……

Mac OS X Snow Leopard 10.6.8 までは、「作成日: --」という表示になっており、そのような情報が存在しないことが一目でわかる。すばらしい。てか、こうするのが普通だろ。

「作成日: 1970年1月1日」などというマヌケな表示になったのは Mac OS X Lion 10.7 からのようだ。

やれやれ、Snow Leopard 以前の表示に戻してくれよアップルちゃん。 そのほうが、まっとうで、美しかぁないかい。

0 件のコメント:

コメントを投稿