2011-03-08 117 views
0

我有一个应用程序,用于查询数据库中用于任务的嵌套文件夹的位置,并打开此文件夹(使用ProcessStartInfo类启动explorer.exe并将文件夹名称作为参数传入)。如何在C#中使用ProcessStartInfo启动名称包含逗号的文件夹?

这工作得很好,除了一些包含逗号的文件夹(不幸的是有它们的负载!)

说,一个叫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); 
     } 
} 
+0

用引号括起来也许(' “C:\本,文件夹”')? – 2011-03-08 08:47:52

+0

什么是例外? – Jonathan 2011-03-08 08:49:21

+0

资源管理器警告你文件夹“文件夹”不存在 - 它将逗号视为前导逗号,即试图打开“文件夹”而不是“c:\ this,folder” – 2011-03-09 09:52:20

回答

3

您是否尝试过在引号引起的文件夹名称,这样的吗?

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

是的,这是有效的。非常感激 ! – 2011-03-09 10:04:18

+0

现在我所需要做的就是放入由数据库查询填充的字段,即:prc.StartInfo.Arguments = pathPrefix + @“\”+ workingPath; – 2011-03-09 10:22:44

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

会做的伎俩

相关问题