NTFSにはMaster File Table(MFT)と呼ばれる領域があり、NTFSの基本情報の他、全てのファイル・フォルダのエントリ情報(ファイル名、属性、タイムスタンプ、など)が1KBの固定サイズ領域に記録されています。
1つのファイルまたはフォルダのエントリレコードには、いくつかのAttribute(属性)と呼ばれる情報が格納されていますが、タイムスタンプ情報は、$STANDARD_INFORMATION という属性と、$FILE_NAME という属性の中に記録されています。
$STANDARD_INFORMATION 属性は、ファイル(またはフォルダ)の基本情報が管理する属性です。
$FILE_NAME 属性は、ファイル名を記録する属性で、1つのファイルに複数存在する場合があります。(8.3ファイル名と長いファイル名など)
それぞれについて、タイムスタンプ情報が記録されていおり、それらをまとめると以下の表のようになります。
Attribute | タイムスタンプ種別 | 説明 |
---|---|---|
$STANDARD_ INFORMATION (ファイル・フォルダの基本情報) |
File Create Time (CTime) | ファイルが作成された時間。 エクスプローラで表示される作成日時 robocopyなどのユーザレベルプロセスで書き換え可能 |
File Modified Time (ATime) |
ファイルのデータが更新された時間。 エクスプローラで表示される更新日時 robocopyなどのユーザレベルプロセスで書き換え可能 |
|
MFT Entry modified Time (MTime) | このMFTエントリが更新された日時 ファイルデータ、ファイル名、ファイル属性、セキュリティ情報、所有者などMFT内のどの情報を更新してもタイムスタンプが更新される robocopyなどのユーザレベルプロセスで書き換え可能 |
|
File Last Access Time (RTime) |
エクスプローラで表示されるアクセス日時 robocopyなどのユーザレベルプロセスで書き換え可能 |
|
$FILE_NAME n (ファイル・フォルダ名に関連する情報) |
File Create Time (CTime) | ファイルが作成された時間。 Kernelでしか更新されない |
File Modified Time (ATime) |
ファイルのデータが更新された時間。 Kernelでしか更新されない |
|
MFT Entry modified Time (MTime) | MFTが更新された日時 Kernelでしか更新されない |
|
File Last Access Time (RTime) |
エクスプローラで表示されるアクセス日時 Kernelでしか更新されない |
通常、エクスプローラなどで表示されるファイルのタイムスタンプは、$STANDARD_INFORMATION のタイムスタンプです。このタイムスタンプは、エクスプローラのなどの一般のユーザレベルアプリケーションでも参照、更新できるようになっています。
$STANDARD_INFORMATION のタイムスタンプで注意しなければならないのは、更新タイムスタンプには、「File Modified Time (ATime)」と「MFT Entry modified Time (MTime)」の2つがあるという点です。
File Modified Time (ATime)はファイルの「データ」が更新されると書き換わるだけですが、MFT Entry modified Time (MTime)は、ファイルのデータだけでなく、ファイル名、属性、セキュリティ情報、所有者情報など、MFTに記録されているどの情報が更新されても更新されるタイムスタンプです。
$FILE_NAME のタイムスタンプは通常目にすることはないもののようです。
ファイル・フォルダに対してどのようなオペレーションをすると、どのタイムスタンプが更新されるかについては、以下の参考リンク記事に、マトリクスとしてにまとめられていますので参考にしてください。
参考リンク:
Related Articles
Submitted comments will be processed manually. So, please understand it will take about a day to publish your comment.