投稿fteのMFTタブではNTFS内の$MFTファイルを参照して各ファイル/フォルダのタイムスタンプをパースします。MFTエントリNTFSの先頭には$Bootファイルがあり、1クラスタのセクタ数や$MFTファイルの開始位置などの情報が格納されています。$MFTファイルは固定サイズのエントリで構成されており、原則1エントリで1つのファイル、フォルダ(以降オブジェクトと表現)のメタデータを管理します。各エントリの先頭は必ずシグネチャ"FILE"ではじまるヘッダ領域があり、その中にリンク数、フラグ(ファイル/フォルダ/未使用)、IDなどの情報が含まれます。ヘッダの後は属性情報で構成されており、様々な属性によって構造は様々です。通常のオブジェクトに相当するエントリは、必ず$STANDARD_INFORMATION属性($SI)と$FILE_NAME属性($FN)を持っています。オブジェクトによっては1つのエントリで2つ以上の$FNを持ちます。これはDOS名前空間に収まらない(名前が8文字を超える、拡張子が3文字を超える、記号を含む、など)場合や、そのオブジェクトに対するハードリンクが作成された場合です。$FNのタイムスタンプ$SIと$FNのどちらの属性も、上図に示すように4種類のタイムスタンプを保持しています。Windowsでは通常$SI内のタイムスタンプが参照、更新等の管理対象であり、$FNのタイムスタンプの定義については不明です。Vista以上ではデフォルトで「最終アクセス日時(atime)は更新しない」というレジストリ値(NtfsDisableLastAccessUpdate)が有効になっているため、atimeは本来の意味合いとは異なるタイムスタンプとなります。7で$SI/$FNのタイムスタンプの挙動を調べた結果です。特定の条件/方法によって対応する$SIのタイムスタンプをセット検証の結果、atimeは他の3種類のタイムスタンプと同じタイミングで更新されることがあり、$FNのタイムスタンプは4種類ともに同じ値で更新されることがある、一部の処理によってその時点で$SIが持っているタイムスタンプを引き継ぐ、などがわかります。fteの処理内容fteのMFTタブで、Drive項目にNTFSボリュームを指定して実行するかファイル/フォルダをドラッグ&ドロップすると、パースして結果を表示します。以下が実行結果の例です。出力する項目の内容は以下の通りです。$FNの8タイムスタンプのソート(昇順)fteはエントリ内に複数の$FNがある場合、$FNの数分だけ結果を別々に出力します。従ってfteの結果に同じIDの行が複数あることがあります。Win32"として1行にまとめます。$FNの計8つのタイムスタンプを古い順に並ベた結果を表示しています。件名コメントテキストフォーマットについてプレーンテキストHTMLタグは利用できません。行と段落は自動的に折り返されます。ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。