C# 在不启动cmd.exe的情况下运行assoc命令

C# 在不启动cmd.exe的情况下运行assoc命令,c#,.net,C#,.net,我正在尝试在启动文件之前查找文件关联,找到关联的最佳方法是使用assoc命令,我的问题是我可以通过某种API方式运行此命令吗?现在,应用程序启动一个cmd窗口来运行命令,然后解析输出 try { Process.Start(@"C:\textfile.txt"); } catch(Win32Exception e) { Process.Start(@"C:\"); } 对我有用。启动与文件关联的应用程序(记事本)。我意识到这不是处理异常的最佳方法,但它确实有效 对我有用。启动与

我正在尝试在启动文件之前查找文件关联,找到关联的最佳方法是使用assoc命令,我的问题是我可以通过某种API方式运行此命令吗?现在,应用程序启动一个cmd窗口来运行命令,然后解析输出

try
{
    Process.Start(@"C:\textfile.txt");
}
catch(Win32Exception e)
{
    Process.Start(@"C:\");
}
对我有用。启动与文件关联的应用程序(记事本)。我意识到这不是处理异常的最佳方法,但它确实有效


对我有用。启动与文件关联的应用程序(记事本)。我意识到这不是处理异常的最佳方法,但它确实有效。

签出

签出

您必须运行assoc吗?您能不能让shell决定如何运行文件本身?也就是说,如果您要求shell执行一个.txt文件、一个.xlsx文件或一个.png文件,它将自动运行相关程序。这并不意味着你不能查找关联,但你需要吗?我需要,因为如果扩展有关联的应用程序,我会启动它,或者显示保存文件的文件夹…你必须运行assoc吗?您能不能让shell决定如何运行文件本身?也就是说,如果您要求shell执行一个.txt文件、一个.xlsx文件或一个.png文件,它将自动运行相关程序。这并不意味着你不能查找关联,但你需要吗?我需要这样做,因为如果扩展名与应用程序关联,我会启动它,或者显示保存文件的文件夹……是的,这就是我的意思:大拇指:是的,这就是我的意思大拇指:这应该是,但文档上说最低操作系统是WindowsVista,我的目标是xp和更高版本……它说哪里需要vista?我在那里读到的只是它需要管理权限,“特别是在Vista下”。最后它说界面信息是最低操作系统Windows Vistat应该的,但文档说最低操作系统是Windows Vista,我的目标是xp和更高版本……它说它在哪里需要Vista?我在那里读到的只是它需要管理权限,“特别是在Vista下”。最后它说界面信息是操作系统Windows Vista的最低要求