Windowsでのファイルのタイムスタンプに関する質問です。エクスプローラ上でファイルのプロパティを開くと、「作成日時・更新日時・アクセス日時」の3種類のタイムスタンプを見ることができます。ファイルシステムが付与している日時情報を、Windowsを経由して表示しているそうです。そこで、以下の内容について、詳しく知りたいと思います。


 ・ここでいう「作成/更新/アクセス」とは、どのようなファイル操作を指すのか?
 ・各タイムスタンプの定義(付与の瞬間、更新の瞬間など)

いろいろ試したところ、

 ・作成日時は、新規にファイルを作成した日時のようだ
 ・更新日時は、ファイルの保存操作を行った日時のようだ
 ・単純にファイルを開いて閉じただけだと、アクセス日時は変化しない?

更新日時だけ変化して、アクセス日時は変わらないような時もありました。実験環境はWinXP(インストール直後、カスタマイズ無し)です。

マイクロソフト社の詳しい技術資料が希望です。ズバリのURLをお待ちしております。対象OSは、2000/XPです。無ければ英語資料でも構いません。

以上、よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/06/28 11:46:02
  • 終了:2006/07/03 08:58:38

回答(2件)

id:kurukuru-neko No.1

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/06/28 12:19:03

ポイント55pt

ファイル システムによっては、作成時刻と最終アクセス時刻

を記録できない場合や、記録方法が異なる場合があるため注意

してください。たとえば、Windows NT FAT ファイル システム

では、作成時刻は 10 ミリ秒単位ですが、書き込み時刻は

2 秒単位です。アクセス時刻は 1 日単位、つまりアクセス日

で表されます。NTFS では、アクセス時刻は 1 時間単位です。

また、FAT では時刻は現地時間でディスクに記録されますが、

NTFS では UTC でディスクに記録されます。詳細については、

「File Times」を参照してください。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...

ファイルの時間についての解説(詳細)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us...



FAT、HPFS、NTFS ファイル システムについて

http://support.microsoft.com/default.aspx?scid=kb;ja;100108

NTFSからFATへのファイルのコピー時に日時が変わる

http://support.microsoft.com/default.aspx?scid=kb;ja;JP402160

id:Mugicha2004

さっそくのご回答、ありがとうございます。方向が見えてきました。助かります。2番目のURL「File Times」について、さらに深く記載している資料はありませんでしょうか? 特に以下の箇所について、詳しく知りたいのです。もう少し、具体的な情報を求めています。自分で検索すれば良いのですが、十分な時間がありません。すみませんが、よろしくお願いいたします。

Timestamps are updated at various times and for various reasons. The only guarantee about a file timestamp is that the file time is correctly reflected when the handle that makes the change is closed.

Not all file systems can record creation and last access times, and not all file systems record them in the same manner. For example, the resolution of create time on FAT is 10 milliseconds, while write time has a resolution of 2 seconds and access time has a resolution of 1 day, so it is really the access date. The NTFS file system delays updates to the last access time for a file by up to 1 hour after the last access.

2006/06/28 16:38:56
id:kurukuru-neko No.2

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/06/28 22:17:26

ポイント15pt

>単純にファイルを開いて閉じただけだと、アクセス日

> 時は変化しない?

 ウイルスチエックの結果なのかプロパティを開いてみると

 すべてのファイルのアクセス時刻が変わっています。

============================================= 

それ以上はありません。

OSの内部構造にかわるので保障したくないのでしょう。

(出来ない)

基本的には、作成時刻時刻、更新時刻はあっていますが、

アクセス時刻は意味がない値なので使えないと思った

方がよいです。 

===============================================

FAT

http://en.wikipedia.org/wiki/File_Allocation_Table

NTFS

http://en.wikipedia.org/wiki/NTFS


FAT/NTFSの技術解説

http://technet2.microsoft.com/WindowsServer/en/Library/8cc5891d-...

id:Mugicha2004

そうですね。ウイルスチェックをかけると、アクセス日時がいっせいに更新される場合はありますね。ご紹介のURLですが、希望の内容とは少し異なります。Wikipediaレベルは既に見ておりますし、3番目もボリュームが多くズバリの箇所が不明です。知りたい情報について、詳細にズバリ記載されているページをご紹介いただけると幸いです。ファイルシステムでのタイムスタンプ情報を、WindowsOSがどのように利用してプロパティの画面で表示しているか....の部分は、特に知りたいところです。よろしくお願いいたします。

2006/06/28 23:25:43
  • id:kurukuru-neko
    ファイルの属性を表示するときは、GetFileTime API
    の値を表示します。


    作成時刻: lpCreateTime
    the date and time the file was created
    アクセス時刻: lpLastAccessTime
    the date and time the file was last
    accessed. The last access time
    includes the last time the file was
    written to, read from, or,
    in the case of executable files, run

    更新時刻: lpLastWriteTime
    the date and time the file was last
    written to, truncated, or overwritten
    (for example, with WriteFile or
    SetEndOfFile). This date and time
    is not updated when file attributes
    or security descriptors are changed

    注記:
    Not all file systems can record creation and last
    access times and not all file systems record them
    in the same manner. For example, on FAT,
    create time has a resolution of 10 milliseconds,
    write time has a resolution of 2 seconds, and
    access time has a resolution of 1 day (really, the
    access date). Therefore, the GetFileTime function
    may not return the same file time information set
    using SetFileTime. NTFS delays updates to the last
    access time for a file by up to one hour after
    the last access.


    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getfiletime.asp
  • id:Mugicha2004
    追加情報、ありがとうございます。ポイントも送信させていただきますね。いただいた内容ですが、既知の分、ご回答済みと分と少し重なっているようです。もっとも知りたかったのは、質問の2項目目の「各タイムスタンプの定義(付与の瞬間、更新の瞬間など)」なのでした。NTFS限定で構いませんので、詳細な技術情報が欲しかったのです。アクセス日時は「openだけでは変わらず、readすると更新される」などの挙動定義について知りたかったのです。私の質問文も良くなかったのかもしれません。Unix系のatime・mtime・ctimeについては、「どのようなコールの際にどのように更新される....」との情報が、多少見つかりました。

この質問への反応(ブックマークコメント)

トラックバック

  • ファイル作成日付の怪 PukiWiki/TrackBack 0.1 2006-11-07 13:59:56
    Windows 上でファイル作成日付に怪現象が見られます。こういう事象です。*1 次の手順を Windows 2000 あるいは Windwos Server 2003 で実行します。(Windwos XP ではとりあえず問題は発生に気づいてませ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません