반응형
콘솔 애플리케이션의 실행 디렉토리를 얻는 방법
아래 코드를 사용하여 콘솔 응용 프로그램의 디렉토리를 얻으려고 시도했습니다.
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
반응형
'code' 카테고리의 다른 글
C # RegEx 문자열 추출 (0) | 2021.01.06 |
---|---|
폴더가 비어있는 경우 Powershell 테스트 (0) | 2021.01.06 |
Main에서 비동기 메서드를 어떻게 호출 할 수 있습니까? (0) | 2021.01.06 |
Git이 이전 커밋을 승인 하시겠습니까? (0) | 2021.01.06 |
자바 : int [] 배열 대 int 배열 [] (0) | 2021.01.06 |