微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 没有应用程序与指定的文件异常相关联

UnhandledException: System.ComponentModel.Win32Exception: No application is associated with the specified file for this operation
   at System.Diagnostics.Process.StartWithShellExecuteEx(processstartinfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(processstartinfo startInfo)
   at System.Diagnostics.Process.Start(String fileName)

嗨,大家好,

我在尝试使用Process.Start打开.csv文件时正在测试的一台计算机上遇到以下异常.我认为这是因为没有为此框中的.csv文件设置文件关联.

那你怎么能避免这种情况呢?

强制Process.Start在记事本中打开? – 理想情况下它应该在excel中打开,但如果excel在那台计算机上不存在,你会怎么做?

谢谢

解决方法

如果您的应用程序依赖于安装Excel以正常有效地工作,那么就会让用户误解它.捕获异常,并弹出通知告诉他们有关问题的信息,然后在该通知中为他们提供一个选项,可以在备用编辑器(如记事本)中打开它.

这一切都归结为良好的用户体验 – 告诉用户,但这样做是为了让你通过提供继续选项来赋予他们权力,而不是只是阻止他们的方式并在发生类似这样的小问题时停止.

编辑:做你正在做的事情 – 不要认为他们有Excel,他们可能有一些其他的浏览器/编辑器,如OpenOffice.无论注册到csv,让它做到这一点.不要试图自己检查文件关联,你的应用程序可能没有(可能不会)有足够的权限在注册表中进行挖掘.

您还需要检查其他明显的异常原因,例如用户无权打开目标文件,这可能是由于对文件夹或文件本身的限制.也许该文件被锁定,因为它仍然在另一个进程中打开. Process.Start失败的原因有很多.

捕获异常,如果原因是没有与该文件关联的应用程序,则为它们提供选项.如果用户选择使用记事本,请尝试在记事本中打开该文件,但仍要注意异常.记事本是一个不错的选择,它不会锁定文件,但它仍然受文件夹/文件ACL的限制.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐