したがって、次のコードを使用して、すべての拡張ファイル属性をデバッグコンソールにダンプしています...
ShellClass shellClass = new ShellClass();
Folder dir = shellClass.NameSpace(Path.GetDirectoryName(sFilePath));
FolderItem item = dir.ParseName(Path.GetFileName(sFilePath));
for (int i = 0; i < 267; i++)
{
System.Debug.WriteLine(dir.GetDetailsOf(item, i));
}
Shell32 は管理されていないライブラリであるため、プログラムに DLL リソースを直接埋め込むことはできず、相互運用ヘルパー DLL を生成する必要があります。
相互運用 DLL の全世代を回避するために、Shell32 のこれらの関数の DLLImport コマンド ラインを知っている人はいますか? pinvoke.net を確認しましたが、Shell32 エントリの下に、探しているものが含まれていないか、期待どおりの名前が付けられていません。
これを達成するために DLLImport を使用することができない場合、マネージ DLL を使用してファイルに関するすべての拡張属性を取得する方法、または少なくとも生成する必要がない場所でそれを行う方法を知っている人はいますか?ヘルパー DLL を作成し、開発中のアプリケーションにインストーラーが必要ですか?
本当にありがとう!