Windows Latestは2026年9月21日(現地時間)、「Microsoft engineer explains why Windows gives new files the date of ones you deleted」において、Windows 11で削除したファイルと同じ名前のファイルを短時間のうちに同じフォルダーへ作成すると、新しいファイルに以前の作成日時が表示される仕組みを解説した。

これは数十年前から存在する「ファイルシステムトンネリング」と呼ぶ機能で、不具合ではない。NTFSとFATが備え、文書を保存するアプリの処理や、古いソフトとの互換性を支えている。

  • Windows 11では、ファイルやフォルダーのプロパティから作成日時を確認できる。ファイルシステムトンネリングが働くと、新規ファイルに削除前のファイルの作成日時が引き継がれる場合がある

    Windows 11では、ファイルやフォルダーのプロパティから作成日時を確認できる。ファイルシステムトンネリングが働くと、新規ファイルに削除前のファイルの作成日時が引き継がれる場合がある

なぜ新規ファイルなのに古い日付? 鍵を握る「15秒」

通常、新しく作ったファイルには、その時点の作成日時が付くと考える。しかし、前日に作成したファイルを今日になって削除し、数秒後に同じ場所へ同名の別ファイルを作ると、プロパティに前日の日付が表示される場合がある。Windowsが削除前のメタデータを一時的に記憶し、条件に合う新しいファイルへ引き継ぐためだ。引き継ぎの対象には、作成日時のほか、長いファイル名と短いファイル名の対応関係が含まれる。

Microsoftの「FileSystemInfo.CreationTime」の文書は、NTFSでフォーマットされたドライブでは、作成時刻などのファイルのメタ情報が短時間キャッシュされる場合があると説明している。この処理がファイルトンネリングに当たる。同社のエンジニア、Raymond Chen氏も2005年にこの機能を紹介し、名称の由来を量子力学のトンネル効果になぞらえて説明した。

量子力学のトンネル効果では、粒子が越えるだけのエネルギーを持たない障壁の反対側に現れる。Chen氏は、削除や名前の変更で失われた情報が、時間の隔たりを越えて再び現れるように見える点を、この現象に重ねた。Windows 95で機能を実装した開発者は、この比喩から内部のデータ構造に「クォーク」と名付けたと紹介している。

処理の起点は、ファイルの削除や名前の変更だ。Windowsはその際、トンネルキャッシュへ情報を登録する。短い有効期間内に同じディレクトリで同名のファイルを作成すると、保存済みの作成時刻やファイル名の対応関係を新しいファイルへ適用する。Microsoftの「FltGetTunneledName」の文書では、キャッシュはボリューム単位の仕組みと説明しており、容量がいっぱいになると古い項目を自動的に消去する。

標準の保持時間は15秒で、保存するのはメタデータに限られる。削除したファイルの中身が、この仕組みで復活するわけではない。名前の対応関係は、長いファイル名と8.3形式の短いファイル名を結び付ける情報を指す。処理には同じディレクトリ内での操作と時間条件が関わるため、先月削除したファイルと同じ名前を使っただけで、古い作成日時を自動的に引き継ぐ仕組みではない。

なぜこんな仕組みが必要? 文書保存と古いアプリとの互換性

この機能を設けた理由の1つは、アプリによる文書の保存方法にある。利用者が前日に作った文書をWordなどで編集し、上書き保存する場合、元の作成日時が残ることを想定する。しかし、アプリの内部処理は、既存ファイルの内容を書き換える方式だけではない。更新内容を一時ファイルへ保存し、元のファイルを削除した後、一時ファイルを元の名前に変更する方式も使う。記事はこれを「Safe save」と呼んでいる。

利用者には1つの文書の編集と保存に見えても、Windowsから見ればファイルの作成、削除、名前の変更が発生している。トンネリングがなければ、置き換え後のファイルに新たな作成日時が付き、文書を最初に作った日時を保てなくなる。キャッシュの情報を引き継ぐことで、この保存方式でも元の文書の作成日時を維持する。

もう1つの理由は、8.3形式の短いファイル名だけを認識する古いアプリへの対応だ。16ビットアプリでは短いファイル名(SFN)しか使用できない。長いファイル名(LFN)を持つファイルをこうしたアプリが置き換える際、両者の対応関係を保てなければ、元の読みやすい名前が失われ、DOS時代の短い表記だけになる。トンネリングは、名前の変更や再作成を経ても長短の名前の結び付きを保つ役割を担う。

MicrosoftがWindows NTやWindows XPを対象に公開した過去のサポート文書では、レジストリを使って標準15秒の保持時間を変更したり、機能を無効にしたりする方法も紹介されている。新しいファイルなのに古い作成日時が表示されるという一見不可思議な挙動は、Windowsが長年にわたってアプリとの互換性を維持してきた結果というわけだ。