| ■20476 / ) |
Re[40]: ディレクトリの排他アクセス |
□投稿者/ れい (641回)-(2008/06/11(Wed) 02:31:25)
|
■No20475 (す さん) に返信 > あれ、そうなんですか。 > でも、「メタ情報」はディレクトリ側に持ってるんですよね?
いいえ。 ディレクトリ側には持っていません。 ディレクトリもメタ情報をもってますが、それはディレクトリ自身のメタ情報です。
> それを見るのにもファイルをオープンしないといけないんですか?
そうです。
以下はNTのファイルシステムの話です。
「c:\aaa\tmp.exe」という場合、 c:\aaa\tmp.exeのファイル属性や更新日時などのメタ情報はc:\aaa\tmp.exeが持っています。 c:\aaaのファイル属性や更新日時などのメタ情報はc:\aaaが持っています。
で、「見る」場合は二通り方法があります。
「c:\aaa\tmp.exe」のメタ情報を「見る」には二通り方法があり、 「c:\aaa\tmp.exe」のハンドルを開いて取得するか、 「c:\aaa」を開いてディレクトリ一覧を見て、そこから取得します。
「c:\aaa\tmp.exe」のメタ情報を「更新する」には 「c:\aaa\tmp.exe」のハンドルを開いて更新するしかありません。
で、Vistaより前のWin32APIだと、
「c:\aaa\tmp.exe」のAttributeを「見る」「書く」には… 「エントリ名」を指定してGetFileAttribute/SetFileAttributeを使います。
「c:\aaa\tmp.exe」の更新日時などを「見る」「書く」には… 「ハンドル」を指定してGetFileTime/SetFileTimeを使います。
Vista以降だと、Attributeに関しても「ハンドル」を用いて「見る」「書く」ことができます。
|
|