c\#흔 한 파일 경로 Api 사용 예시
우선 우 리 는 실례 해결 방안 을 만 들 었 다.
그 중에서 호출 체인 은 Main.Shell->FooALibrary->입 니 다.우선 FooAFolder.txt 와 FooA.txt 의 파일 속성 설정 생 성 작업 을 내용 으로 하고 출력 디 렉 터 리 로 복사 하여 처음부터 끝까지 복사 합 니 다.
그러면 우 리 는 이 두 파일 의 경 로 를 얻 는 방법 이 있 습 니까?우 리 는 다음 과 같은 방법 을 사용 할 수 있 습 니 다.
var currentDomainBaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var result = File.Exists(Path.Combine(currentDomainBaseDirectory, @"FooAFolder\FooAFolder.txt"))? " FooAFolder.txt": " FooAFolder.txt";
Console.WriteLine(result);
result = File.Exists(Path.Combine(currentDomainBaseDirectory, @"FooA.txt"))? " FooA.txt": " FooA.txt";
Console.WriteLine(result);
// FooAFolder.txt
// FooA.txt
var currentDirectory = System.Environment.CurrentDirectory;
result=File.Exists(Path.Combine(currentDirectory, @"FooAFolder\FooAFolder.txt")) ? " FooAFolder.txt" : " FooAFolder.txt";
Console.WriteLine(result);
result = File.Exists(Path.Combine(currentDirectory, @"FooA.txt")) ? " FooA.txt" : " FooA.txt";
Console.WriteLine(result);
// FooAFolder.txt
// FooA.txt
주로 사용 되 는 두 가지 방식 은:AppDomain.CurrentDomain.BaseDirectory
System.Environment.CurrentDirectory
현재 실행 중인 프로그램 집합 가 져 오 는 방법:Assembly.GetExecutingAssembly().Location(추천 방식)
var mainExecuteDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
result = File.Exists(Path.Combine(mainExecuteDirectory, @"FooAFolder\FooAFolder.txt")) ? " FooAFolder.txt" : " FooAFolder.txt";
Console.WriteLine(result);
result = File.Exists(Path.Combine(mainExecuteDirectory, @"FooA.txt")) ? " FooA.txt" : " FooA.txt";
Console.WriteLine(result);
// FooAFolder.txt
// FooA.txt
//
var fooAssembly = Assembly.GetAssembly(typeof(FooA));
var fooAExecuteDirectory = Path.GetDirectoryName(fooAssembly.Location);
result = File.Exists(Path.Combine(fooAExecuteDirectory, @"FooAFolder\FooAFolder.txt")) ? " FooAFolder.txt" : " FooAFolder.txt";
Console.WriteLine(result);
result = File.Exists(Path.Combine(fooAExecuteDirectory, @"FooA.txt")) ? " FooA.txt" : " FooA.txt";
Console.WriteLine(result);
Console.ReadLine();
// FooAFolder.txt
// FooA.txt
우 리 는 FooA 와 FooB 에 다음 과 같은 코드 를 추가 할 수 있 습 니 다.
public static class FooB
{
public static void GetExecutingAssemblyPath()
{
Console.WriteLine(Assembly.GetExecutingAssembly().Location);
}
public static void GetCallingAssemblyPath()
{
Console.WriteLine(Assembly.GetCallingAssembly().Location);
}
public static void GetEntryAssemblyPath()
{
Console.WriteLine(Assembly.GetEntryAssembly().Location);
}
}
public static class FooA
{
public static void ExecuteFooBGetCallingAssemblyPath()
{
FooB.GetCallingAssemblyPath();
}
public static void ExecuteFooBGetExecutingAssemblyPath()
{
FooB.GetExecutingAssemblyPath();
}
}
//
Console.WriteLine($"{nameof(FooA.ExecuteFooBGetExecutingAssemblyPath)}:");
FooA.ExecuteFooBGetExecutingAssemblyPath();
Console.WriteLine($"{nameof(FooA.ExecuteFooBGetCallingAssemblyPath)}:");
FooA.ExecuteFooBGetCallingAssemblyPath();
Console.WriteLine($"{nameof(FooB.GetExecutingAssemblyPath)}:");
FooB.GetExecutingAssemblyPath();
Console.WriteLine($"{nameof(FooB.GetCallingAssemblyPath)}:");
FooB.GetCallingAssemblyPath();
Console.WriteLine($"{nameof(FooB.GetEntryAssemblyPath)}:");
FooB.GetEntryAssemblyPath();
출력:
ExecuteFooBGetExecutingAssemblyPath:
C:\Users\Ryzen\source\repos\CommonFilePathApiSample\Main.Shell\bin\Debug
etcoreapp3.1\FooBLibrary.dll
ExecuteFooBGetCallingAssemblyPath:
C:\Users\Ryzen\source\repos\CommonFilePathApiSample\Main.Shell\bin\Debug
etcoreapp3.1\FooALibrary.dll
GetExecutingAssemblyPath:
C:\Users\Ryzen\source\repos\CommonFilePathApiSample\Main.Shell\bin\Debug
etcoreapp3.1\FooBLibrary.dll
GetCallingAssemblyPath:
C:\Users\Ryzen\source\repos\CommonFilePathApiSample\Main.Shell\bin\Debug
etcoreapp3.1\Main.Shell.dll
GetEntryAssemblyPath:
C:\Users\Ryzen\source\repos\CommonFilePathApiSample\Main.Shell\bin\Debug
etcoreapp3.1\Main.Shell.dl
우 리 는 위 에서 다음 과 같은 두 가지 용법 을 알 수 있다.Assembly.GetEntryAssembly().Location
,FooALibrary
와FooBLibrary
입 구 는 모두Main.Shell
Assembly.GetCallingAssembly().Location
,당Main.Shell
조FooBLibrary
,출력Main.Shell
,FooALibrary
조FooBLibrary
,출력FooALibrary
임시 디 렉 터 리 에 있 는 파일 가 져 오기
프로그램 임시 파일 을 설치 하기 위해 임시 디 렉 터 리 경 로 를 가 져 오 는 방법 도 자주 있 습 니 다.다음 방법 으로 가 져 올 수 있 습 니 다.
Console.WriteLine(Path.GetTempPath());
//C:\Users\Ryzen\AppData\Local\Temp\
이상 은 c\#흔 한 파일 경로 Api 의 사용 예시 에 대한 자세 한 내용 입 니 다.c\#파일 경로 Api 의 사용 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.