【问题标题】:How can I launch a folder whose name contains a comma, using ProcessStartInfo in C#?如何使用 C# 中的 ProcessStartInfo 启动名称包含逗号的文件夹?
【发布时间】:2011-03-08 08:43:20
【问题描述】:

我有一个应用程序查询数据库中用于任务的嵌套文件夹的位置,然后打开该文件夹(使用 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);
        }
}

【问题讨论】:

  • 也许用引号括起来 ("c:\this,folder")?
  • explorer 警告您“文件夹”文件夹不存在 - 它将逗号视为前导逗号,即尝试打开“文件夹”而不是“c:\this,folder”跨度>

标签: c# explorer processstartinfo


【解决方案1】:

您是否尝试过像这样用引号将文件夹名称括起来?

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

【讨论】:

  • 现在我需要做的就是放入由数据库查询填充的字段中,即: prc.StartInfo.Arguments = pathPrefix + @"\" + workingPath;
【解决方案2】:
prc.StartInfo.Arguments = "\"c:\\this,folder\"";

会成功的

【讨论】:

    猜你喜欢
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 2014-05-22
    • 2021-04-17
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多