code

콘솔 애플리케이션의 실행 디렉토리를 얻는 방법

codestyles 2021. 1. 6. 08:22
반응형

콘솔 애플리케이션의 실행 디렉토리를 얻는 방법


아래 코드를 사용하여 콘솔 응용 프로그램의 디렉토리를 얻으려고 시도했습니다.

Assembly.GetExecutingAssembly().Location

그러나 이것은 조립이 어디에 있는지 나에게 알려줍니다. 이것은 내가 응용 프로그램을 실행 한 위치와 다를 수 있습니다.

내 콘솔 애플리케이션은 매개 변수없이 로그를 구문 분석합니다. logs/실행 파일의 폴더 내부에 있는 폴더 로 이동 하거나 경로를 지정 logs/하여 구문 분석해야합니다.


사용 Environment.CurrentDirectory.

현재 작업 디렉터리의 정규화 된 경로를 가져 오거나 설정합니다.
(MSDN Environment.CurrentDirectory 속성 )

string logsDirectory = Path.Combine(Environment.CurrentDirectory, "logs");

애플리케이션이 c : \ Foo \ Bar 에서 실행중인 경우 c : \ Foo \ Bar \ logs를logsDirectory 가리 킵니다 .


이것을 사용하십시오 :

System.Reflection.Assembly.GetExecutingAssembly().Location

그것을 결합

System.IO.Path.GetDirectoryName if all you want is the directory.

가장 안전한 방법 :

string temp = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);

다음은 간단한 로깅 방법입니다.

using System.IO;
private static void logWrite(string filename, string text)
{
    string filepath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\" + filename;

    using (StreamWriter sw = File.AppendText(filepath))
    {
        sw.WriteLine(text);
        Console.WriteLine(text);
    }
}

용법:

logWrite("Log.txt", "Test");

참조 URL : https://stackoverflow.com/questions/10993721/how-to-get-execution-directory-of-console-application

반응형