2011-03-08 59 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\""; 

會做的伎倆

相關問題