2014-08-28 2 views
0

나는 콘솔 응용 프로그램 파일에 텍스트를 쓸 일이 그것은 C :/APP1Process.Start를 환경 경로

using (StreamWriter k = new StreamWriter("777.txt")) 
    k.WriteLine("aa"); 

내가 가진 또 다른 콘솔 응용 프로그램이 C : 콘솔 응용 프로그램 1을 시작/APP2,

System.Diagnostics.Process.Start("c:/app1/app1.exe"); 

응용 프로그램 2를 실행할 때 출력 777.txt는 folder1 대신 folder2에있게됩니다. Windows 탐색기에서 응용 프로그램 1을 실행하면 출력 777.txt가 folder1에 있습니다.

나는 environment.path를 추가하려고 시도했지만 문제를 해결하지 못했습니다.

답변

1

다음을 시도하십시오

 ProcessStartInfo startInfo = new ProcessStartInfo(@"c:\app1\app1.exe"); 
     startInfo.WorkingDirectory= @"c:\app1"; 

     Process.Start(startInfo); 
1

응용 프로그램 1에서 루트 경로가 아닌 상대 경로를 사용하고 있습니다. 이 경로는 "경로"환경 변수가 아닌 "현재 디렉토리"에 상대적입니다.

프로세스는 현재 디렉터리를 정의하는 속성을 포함하는 ProcessStartInfo 인스턴스를 받아 들일 수 있습니다. 시작하기 전에 응용 프로그램 1의 위치로 설정하는 것이 좋습니다.

1

당신은 교체해야합니다 귀하의 "777.txt"AppDomain.CurrentDomain.BaseDirectory & "777.txt"

관련 문제