2010-03-03 7 views
1

Windows 서비스를 만들고 코드에 동적 경로를 넣으려고합니다. 그러나 정적 코드 만 허용합니다.동적 문자열 x 정적 문자열

이 작동 :

Process.Start("C:\\Program Files\\Program\\Program.exe", "-socket 12345"); 

하지만이 나던 :

String path = "C:\\Program Files\\Program"; 
String programName = "\\Program.exe"; 
String fileLocation = path + programName; 
Process.Start(fileLocation, "-socket 12345"); 

누군가가 나를 도울 수 있습니까?

답변

2

절대 경로를 연결하면 안됩니다. 대신 Path.Combine을 사용하십시오.

String path = @"C:\Program Files\Program"; 
String programName = "Program.exe"; 
String fileLocation = System.IO.Path.Combine(path, programName); 
Process.Start(fileLocation, "-socket 12345"); 
+0

OP 작성한 것과 같이 "\\ Program.exe"를 사용하지 마십시오. 두 번째 경로가 \로 시작되면 루트가 아닌 것으로 간주되어 연결없이 반환됩니다. –

2

코드 예제의 결과는 Process.Start입니다. 문제가 무엇이든, 여기에 나와 있지 않습니다.

+0

첫 번째 샘플에서는 파일을 찾았고 두 번째 샘플에서는 왜 그렇지 않습니까? – Mig

+0

@Mig, 완전한 코드를 게시하지 않았기 때문에. 작동 코드와 비 작동 코드는 동일합니다. –