如何使用C#中的ProcessStartInfo启动名称中包含逗号的文件夹?

时间:2011-03-08 08:43:20

标签: c# explorer processstartinfo

我有一个应用程序,它在数据库中查询用于任务的嵌套文件夹的位置,并打开此文件夹(使用ProcessStartInfo类启动explorer.exe并将文件夹名称作为一个论点)。

除了包含逗号的许多文件夹之外,这种方法很好(不幸的是有很多文件夹!)

说,对于名为C:\this,folder\的文件夹,它会尝试启动“文件夹”。我如何才能将它作为逐字对待?

示例代码:

public void LaunchExplorer() {
        ProcessStartInfo explorer = new ProcessStartInfo();             

        string windir = Environment.GetEnvironmentVariable("WINDIR");
        System.Diagnostics.Process prc = new System.Diagnostics.Process();
        prc.StartInfo.FileName = windir + @"\explorer.exe ";
        prc.StartInfo.Arguments = @"c:\this,folder";
        prc.StartInfo.UseShellExecute = false;

        try                                       
        {                
            prc.Start();
        }

        catch
        {
            MessageBox.Show("cannot open folder " + prc.StartInfo.Arguments);
        }
}

2 个答案:

答案 0 :(得分:3)

您是否尝试将文件夹名称括在引号中,如下所示?

prc.StartInfo.Arguments = "\"c:\\this,folder\"";

答案 1 :(得分:0)

prc.StartInfo.Arguments = "\"c:\\this,folder\"";

会做的伎俩