¿Cómo leer las propiedades de los archivos usando IpropertyStorage?

¿Cómo leer las propiedades (como título, autor, recuento de páginas, etc.) de los archivos utilizando iPropertyStorage? Alguien sabe el código en c # por favor publícalo.

Actualmente,

Estoy intentando progtwigr (usando c #) leer las propiedades del archivo (Título, Resumen, Autor, Comentarios, etc.). Las cosas que aparecen en la pestaña Resumen cuando ves las propiedades de un archivo).

Las clases FileInfo y FileSystemInfo solo exponen las propiedades estándar (tiempo de creación, tiempo de modificación, etc.), así que estoy tratando de usar ipropertyStorage. Cualquiera que sepa la solución, será útil.

La progtwigción de shell como esta es invariablemente difícil de hacer. Aunque tendrás una oportunidad de pelear en este caso, shell32.dll tiene una interfaz de automatización que se puede llamar desde los clientes COM. La propiedad ShellFolderItem :: ExtendedProperty los pone a disposición. Necesitará un proyecto de WPF o Windows Forms para que COM se inicialice correctamente. Use Project + Agregar referencia, pestaña Examinar, seleccione c: \ windows \ system32 \ shell32.dll. Este código de ejemplo lee la propiedad Autor del archivo c: \ temp \ test.txt:

Shell32.Shell shl = new Shell32.ShellClass(); Shell32.Folder dir = shl.NameSpace(@"c:\temp"); Shell32.FolderItem itm = dir.Items().Item("test.txt"); Shell32.ShellFolderItem itm2 = (Shell32.ShellFolderItem)itm; string prop = (string)itm2.ExtendedProperty("{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 4"); Console.WriteLine(prop); 

Los valores de ID de propiedad (PID) que puede usar están documentados en este artículo del SDK .