2014-04-25 9 views
5

Piszę program, w którym użytkownik może wpisać informacje o kliencie, a następnie otworzyć model MS Word (* .dotx). Następnie może bezpośrednio archiwizować go za pomocą innego programu. Klikam więc przycisk, który utworzyłem dla MS Word, a następnie powinien otworzyć inny program (program archiwalny) i przekazać mu ścieżkę do pliku * .dotx. Mam ten kod, aby przejść drogę i otworzyć program archiwum:Jak uniknąć dzielenia ciągu na wszystkie spacje w linii poleceń

Process p = new Process(); 
p.StartInfo.Arguments = "Word " + secondArgument; 
p.StartInfo.FileName = fileName; 
p.Start(); 

Ciąg secondArgument ist ścieżkę do pliku i fileName jest ścieżką do pliku exe programu archiwum.

Aby uzyskać argumenty w programie archiwum, używam tego kodu w Form_Load():

string[] args = Environment.GetCommandLineArgs(); 

Następnie używam MsgBox wyglądać, jeśli jest prawidłowo przeszły. Ale tak nie jest. W nazwie pliku .dotx znajdują się spacje (np. "Ścieżka \ To plik test.dotx"). Tak więc wyjście MessageBox.Show(args[0]) to "ścieżka \ To". Jak mogę uniknąć tego, że dzieli się w każdym odstępie?

sugestie mile widziane :)

Odpowiedz

12

Trzeba otoczyć je w cudzysłowie:

"This is a test file.dotx" 

MSDN: Argumenty wiersza

poleceń są oddzielane spacjami. Możesz użyć podwójnego cudzysłowów ("), aby uwzględnić spacje w argumencie:

+0

Mój człowiek! Dokładnie to, czego potrzebuję, dziękuję, miło wiedzieć. – Tyler

Powiązane problemy