- ベストアンサー
NTFS 代替データストリームを検出
windows xpやvistaでファイル名を指定してそのファイルのNTFS代替データストリームを検出(名前を取得する)するAPI関数があったら教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず,2003/Vista以降についてはそのものとなるAPIがあります。 MSDN: FindFirstStreamW Function (Windows) http://msdn.microsoft.com/en-us/library/aa364424.aspx MSDN: FindNextStreamW Function (Windows) http://msdn.microsoft.com/en-us/library/aa364430.aspx MSDN: FindClose Function (Windows) http://msdn.microsoft.com/en-us/library/aa364413.aspx MSDN: WIN32_FIND_STREAM_DATA Structure (Windows) http://msdn.microsoft.com/en-us/library/aa365741.aspx 使い方はFindFirstFile/FindNextFile/FindCloseの流れと同じです。 ただし,APIの名称を見てわかる通り,W系しかないため,A系の中で使う場合は注意が必要です。 次に,XPおよびそれ以前についてですが,直接的なAPIは存在しません。 Backup APIを使って調べる事になります。 MSDN: プログラマから見た NTFS 2000 Part1: ストリームとハード リンク http://msdn.microsoft.com/ja-jp/library/ms810604.aspx MSDN: BackupRead Function (Windows) http://msdn.microsoft.com/en-us/library/aa362509.aspx MSDN: BackupSeek Function (Windows) http://msdn.microsoft.com/en-us/library/aa362510.aspx MSDN: WIN32_STREAM_ID Structure (Windows) http://msdn.microsoft.com/en-us/library/aa362667.aspx Backup APIに関しては,少なくともNT4時代まで遡って使う事ができます。 NT 3.51およびそれ以前は使った事がないのでわかりません。 # 上記MSDNのコミュニティによる追記では,NT 3.1まで遡れるようですが。
お礼
とても詳しい情報をありがとうございます。