我正在尝试找出如何读/写C#中的扩展文件属性,例如注释,比特率,访问日期,类别等,你可以在Windows资源管理器中看到。你知道该怎么做吗?编辑:我将主要读/写视频文件(AVI/DIVX/...)
发布于 2010-08-23 20:25:28
感谢你们的这个帖子!当我想知道exe的文件版本时,它对我很有帮助。然而,我需要自己弄清楚所谓的扩展属性的最后一点。
如果您在Windows资源管理器中打开exe (或dll)文件的属性,您将看到一个版本选项卡,以及该文件的扩展属性视图。我想访问其中的一个值。
这个问题的解决方案是属性索引器FolderItem.ExtendedProperty,如果您删除属性名称中的所有空格,您将获得值。例如,文件版本变成了FileVersion,你就有了它。
希望这对任何人都有帮助,只是想把这个信息添加到这个帖子中。干杯!
发布于 2013-02-27 20:01:49
GetDetailsOf()
方法-检索有关文件夹中项目的详细信息。例如,它的大小、类型或上次修改的时间。文件属性可能因Windows-OS
版本的不同而有所不同。
List<string> arrHeaders = new List<string>();
Shell shell = new ShellClass();
Folder rFolder = shell.NameSpace(_rootPath);
FolderItem rFiles = rFolder.ParseName(filename);
for (int i = 0; i < short.MaxValue; i++)
{
string value = rFolder.GetDetailsOf(rFiles, i).Trim();
arrHeaders.Add(value);
}
发布于 2017-10-09 21:49:14
Jerker's answer 稍微简单一点。下面是运行from MS的示例代码
var folder = new Shell().NameSpace(folderPath);
foreach (FolderItem2 item in folder.Items())
{
var company = item.ExtendedProperty("Company");
var author = item.ExtendedProperty("Author");
// Etc.
}
对于那些不能静态引用shell32的人,可以像这样动态调用它:
var shellAppType = Type.GetTypeFromProgID("Shell.Application");
dynamic shellApp = Activator.CreateInstance(shellAppType);
var folder = shellApp.NameSpace(folderPath);
foreach (var item in folder.Items())
{
var company = item.ExtendedProperty("Company");
var author = item.ExtendedProperty("Author");
// Etc.
}
https://stackoverflow.com/questions/220097
复制相似问题