2010-09-20 20 views
5

Potrzebuję otworzyć folder za pomocą Eksploratora Windows przy użyciu C#. Działa poprawnie, dopóki nie ma przecinka w ścieżce folderu. Oto przykład:Otwórz folder zawierający przecinek na ścieżce

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

Błąd jest następujący: Ścieżka "456" nie istnieje lub nie jest katalogiem.

Każde rozwiązanie proszę :)

+1

próbowałeś tego uniknąć? – st0le

+0

@ st0le: Nie ma nic do ucieczki; to musi być otoczone podwójnymi cytatami. –

Odpowiedz

2

Spróbuj otaczać ścieżkę z podwójnych cudzysłowach:

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

spróbuj dodać cudzysłowie ścieżce:

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

Side-UWAGA: może ułatwić pisanie ścieżek przy użyciu dosłownego ciągu literowego, aby uniknąć ucieczki od ukośników:

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

To działało dobrze, dzięki! – sturmgewehr

+2

Trzeba to również zrobić, jeśli ścieżka zawiera inne znaki specjalne, takie jak spacja. Tak więc, aby być bezpiecznym, ciągi znaków zawsze powinny być podwójnie cytowane. – Polyfun

+0

nice! :) [15chars] – st0le

0

Spróbuj uciec nazwę pliku:

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

Użyj operatora @ przed ciąg ścieżki ... a potem po prostu zapisać ścieżkę bez znaków ewakuacyjnych jak ukośniki itp to sprawia, że ​​ciąg dosłownie.

System.Diagnostics.Process.Start (@ "C: \ myapp.exe"); // powinien działać

Powiązane problemy