2010-09-20 18 views
5

Ho bisogno di aprire la cartella tramite Windows Explorer usando C#. Funziona bene fino a quando non c'è una virgola nel percorso della cartella. Ecco un esempio:Aprire la cartella che contiene la virgola nel suo percorso

System.Diagnostics.Process.Start("explorer.exe", "C:\\folder\\another-folder\\123,456"); 

L'errore è: Il percorso di '456' non esiste o non è una directory.

Qualsiasi soluzione si prega :)

+1

hai provato a evaderlo? – st0le

+0

@ st0le: non c'è niente da scappare; deve solo essere circondato da virgolette. –

risposta

2

cercare di circondare il percorso con doppi apici:

System.Diagnostics.Process.Start("explorer.exe", "\"C:\\folder\\another-folder\\123,456\""); 
13

Prova ad aggiungere virgolette intorno alla vostra percorso:

System.Diagnostics.Process.Start("explorer.exe", "\"C:\\folder\\another-folder\\123,456\""); 

Side-nota: potrebbe essere più facile scrivere percorsi usando una letterale stringa letterale, per evitare di dover sfuggire alle barre:

System.Diagnostics.Process.Start("explorer.exe", @"""C:\folder\another-folder\123,456"""); 
+0

Ha funzionato bene, grazie! – sturmgewehr

+2

Avresti anche bisogno di farlo se il percorso contenesse altri caratteri speciali, come lo spazio. Quindi, per essere sicuri, le stringhe di percorso dovrebbero sempre essere doppie. – Polyfun

+0

bello! :) [15chars] – st0le

0

Prova sfuggire il nome del file:

System.Diagnostics.Process.Start("explorer.exe", "\"C:\\folder\\another-folder\\123,456\""); 
0

utilizzare l'operatore @ prima della stringa di percorso ... e poi semplicemente annotare il percorso senza caratteri di escape come backslash, ecc E rende la stringa verbatim.

System.Diagnostics.Process.Start (@ "C: \ myapp.exe"); // dovrebbe funzionare

Problemi correlati