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

前端之家收集整理的这篇文章主要介绍了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的限制.

原文链接:https://www.f2er.com/csharp/243035.html

猜你在找的C#相关文章