2009-06-01 6 views
2

Windowsファイルにいくつかのメタデータを埋め込みたいと思います。win32で拡張Windowsファイル属性を読み書きする方法

私はこの非常に目的のために使用されていると信じている拡張ファイル属性の概念に出くわしました。たとえば、カメラ名はjpgs、エピソード名はavisです。

非常に明白ではない文書化されたカーネルAPIとは別に、win32 APIを使用してc/C++でこれを行う方法を見つけることができません。

誰もこれを行ったことがありますか?

ありがとうございます。

+0

どのようなファイルですか?ディスク上のバイナリデータファイルですか? – Robert

+0

はい。私はファイルの内容のハッシュを埋め込みたい –

答えて

4

拡張属性は、ファイルシステムのプロパティです(NTFSなど)。 jpegおよびAVIに関連付けられたタグは、ファイルそのものに格納されます。 Win32 APIは、ファイルシステム内のEAを提供するだけで、ファイル内に埋め込まれたEAは提供しません。埋め込み属性を取得するには、サードパーティのライブラリを調べなければなりません。

-1

一般的に、メタデータは、アプリケーションが簡単にアクセスできる方法でフォーマットできます。 RDF仕様は、一般的に有用な種類の情報の大部分をカバーする標準的なメタデータ機能を提供するために作成されました。

しかし、問題は、フォーマットを処理する方法を知っていると思うアプリケーションを妨げないように、実際のデータと一緒にそれを格納する方法を常に見つけています。これは、よく知られているフォーマットでは特に難しいことがあります。

Adob​​eはこの問題について多くの研究を行い、良い結果を得るためにXMPという技術をサポートしています。 XMPには、RDFに密接に関連したスタイルのメタデータと、それを他の多くのファイル形式に格納するための規則や、データを内部に収めるポータブルな方法がない場合のサイドカーファイルが含まれています。

すべてのファイルがNTFSボリュームに格納されているWindowsシステムでは、拡張属性と代替データストリームを使用してメタデータを格納することが考えられます。これに関する大きな問題は、移植性の1つです。 CDやDVDで使用されているファイルシステムだけでなく、FATのフレーバーなど、ファイルをサポートしていないメディアにコピーすると、代替ストリームが失われます。

これは、このようなファイルの有効かつ完全なバックアップをほとんどのユーザーにとって実用的なものよりも難しくする重大な欠陥です。

代替データストリームを使用するアプリケーションがありますが、追加された値がファイルのコピー時に失われる可能性があることを認識しています。

関連する問題