C#在安装应用程序之前和之后获取文件类型
Posted
技术标签:
【中文标题】C#在安装应用程序之前和之后获取文件类型【英文标题】:C# get file types before and after install of application 【发布时间】:2016-07-22 03:22:37 【问题描述】:我目前正在尝试获取 ALL 的文件类型关联(我知道大问题)机器上的文件类型关联,将其存储在列表中(或字典,如果这更好?)然后将其与列表进行比较已安装应用程序(新列表、新关联快照)并在新列表中输出任何差异(因此总共 3 个列表,安装前、安装后、比较列表)
对于一个示例场景:- Adobe Acrobat 与 .pdf 相关联。所以我有一个与 .pdf 作为 acrobat 的所有关联的快照。
然后我安装 Adobe Reader - 这需要 .pdf 关联,然后我再次运行列表,现在我在 .pdf 上有一个带有阅读器的列表
然后我可以运行比较并输出差异并将其输出为新格式(列表视图/文本文件)
我通常会提供一个代码示例,但老实说,我不知道从哪里开始 - 我环顾四周,主要是找到如何添加我不想要的 fta。
干杯
【问题讨论】:
请检查这些:***.com/questions/6609640/…, ***.com/questions/770023/… 【参考方案1】:看看这篇代码项目文章:System File Association
作者获取包含在机器上注册的所有扩展的列表:
var allExtensions = new List<string>();
RegistryKey root = Registry.ClassesRoot;
string[] subKeys = root.GetSubKeyNames();
foreach (string subKey in subKeys) // now it's better to use Linq
if (subKey.StartsWith("."))
allExtensions.Add(subKey);
然后得到关联的progId:
FileAssociationInfo fa = new FileAssociationInfo(extension);
var progId = fa.ProgID; // .pdf progId is "SumatraPDF" (on my machine)
希望对你有帮助。
【讨论】:
请不要只提供链接答案。那些可能会变得陈旧。您应该将此作为评论发布或重复答案中的重要部分 @DanielHilgarth 你是对的。最好将此作为评论发布。但我没有足够的声誉:( 我似乎从这段代码中得到了一些工作,为我一直很忙的缓慢回复道歉!将标记为正确答案,非常感谢!以上是关于C#在安装应用程序之前和之后获取文件类型的主要内容,如果未能解决你的问题,请参考以下文章