所以我用下面的代碼來轉儲每一個擴展的文件屬性來調試控制檯...的P/Invoke與SHELL32,旁路Interop.Shell32.dll代
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。
任何人都知道Shell32中的這些函數的DLLImport命令行來解決整個interop DLL的問題?我檢查了pinvoke.net和Shell32條目,他們要麼沒有我要找的東西,要麼沒有命名我期待的東西。
如果無法使用DLLImport來完成此任務,是否有人知道使用託管DLL來獲取有關文件的所有擴展屬性的方法,或者至少有一種方法可以在不使用託管DLL的情況下執行此操作必須生成一個幫助程序DLL並需要一個安裝程序和我正在開發的應用程序?
非常感謝!
您是否知道.NET 4 +中的嵌入式互操作功能? http://msdn.microsoft.com/en-us/library/dd997297.aspx –
不幸的是,我卡住了3.5,但這是一個很酷的功能,得到後來的書籤。 –