System.Diagnostics.Process.Start()打开/运行错误的目录?

时间:2011-04-03 23:50:27

标签: c# .net process.start

我想我发现了一个错误。在我看来,Process.Start运行错误的目录。 要进行测试,请创建默认控制台应用程序模板并粘贴以下内容:


using System;
using System.Diagnostics;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            bool test = false;

            DirectoryInfo root = Directory.CreateDirectory(
                System.IO.Path.Combine(Directory.GetCurrentDirectory(), "folder"));

            DirectoryInfo bug = Directory.CreateDirectory(
                System.IO.Path.Combine(root.FullName, "bug"));
            DirectoryInfo bugDotCom = Directory.CreateDirectory(
                System.IO.Path.Combine(root.FullName, "bug.com"));

            ProcessStartInfo bugPSI = new ProcessStartInfo(bug.FullName);
            ProcessStartInfo bugDotComPSI = new ProcessStartInfo(bugDotCom.FullName);

            if (test)
            {
                Console.WriteLine(bug.FullName);
                Process.Start(bugPSI);
            }
            else
            {
                Console.WriteLine(bugDotCom.FullName);
                Process.Start(bugDotComPSI);
            }
            Console.ReadKey();
        }
    }
}

当变量 test 设置为false时,应打开 bug.com 目录,否则 bug 目录。但是,此示例显示始终打开 bug.com (无论测试变量) - 至少对我而言。 怎么了?我错过了什么或那只是一个错误?

1 个答案:

答案 0 :(得分:2)

.com%PATHEXT%的一部分,因此如果存在,Windows将使用它。

更改扩展名以便没有bug.com文件夹可以避免此问题。

要解决此问题,请在路径末尾添加\