在尝试 Process.Start() 之前,如何以编程方式检查文件是否存在文件关联?
我的 .Net Windows 窗体应用程序生成一个 PDF 报告,我想将其显示给用户。
有没有办法预先检查客户端上的文件关联列表,然后显示,而不是仅仅假设客户端 PC 安装了 PDF 查看器并盲目地将 PDF 扔到操作系统中打开如果 PDF 不是注册类型,则会出现“您需要安装 PDF 查看器应用程序 - 这里有一些建议..”对话框?
我发现了很多有关更改或注册文件关联的问题和答案,但我只是想要一种简单的方法来查询列表,而不是更改它。
我想要一个适用于 Windows XP 及以上版本(WinXP、Vista、Win7)的解决方案。
感谢您的帮助
My .Net Windows Forms application generates a PDF report, which I want to show to the user.
Instead of just assuming the client PC has a PDF viewer installed and blindly throwing the PDF at the Operating System to open, is there a way to check against the list of file associations on the client beforehand, then show a "you need a PDF viewer application installed - here's a couple of suggestions.." dialog if PDF isn't a registered type?
I've found a lot of questions and answers about changing or registering file associations, but I just want an easy way to query the list, not change it.
I'd like a solution that works on Windows XP onwards (WinXP, Vista, Win7).
Thanks for your help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最好不要直接使用注册表,而是依赖 Windows API。以下是 SO 上的一个链接,它提供了 .NET 解决方案: 如何根据扩展名获取文件类型信息? (不是 MIME)在 c# 中
It's better not use the registry directly but rely on the Windows API instead. Here is a link on SO that gives a .NET solution: How do I get File Type Information based on extension? (not MIME) in c#
我发现注册表中有一个.pdf密钥,也许它可以帮助你:
I found there is a .pdf key in the registry, maybe it can help you: