본문 바로가기

C#/파일 처리

C#에서 파일 경로 이름 처리

1. 경로 이름을 구성 요소로 분할하는 방법

 

Path 클래스에 있는 정적 메서드를 사용하면 파일 이름을 구성 요소로 분할할 수 있다.

var path = @”C:\Program Files\Microsoft Office\Office16\EXCEL.EXE”;

//지정한 경로 문자열에서 디렉터리 정보를 반환
//반환된 경로에는 경로의 마지막에 있는 ‘\’가 포함되지 않는다.
var directoryName = Path.GetDirectoryName(path);

//지정한 경로 문자열에서 파일 이름과 확장자를 반환
var fileName = Path.GetFileName(path);

//지정한 경로 문자열의 확장자를 반환
//반환된 경로의 확장자에는 점(.)이 포함된다
var extension = Path.GetExtension(path);

//지정한 경로 문자열에서 파일 이름을 확장자 없이 반환
var filenameWithoutExtension = Path.GetFileNameWithoutExtension(path);

//지정한 경로에서 루트 디렉터리 정보(예 : “C:\”)를 구한다.
var pathRoot = Path.GetPathRoot(path);

 

 

2. 상대 경로로부터 절대 경로를 구하는 방법

 

상대 경로로부터 절대 경로를 구하려면 Path 클래스에 있는 GetFullPath라는 정적 메서드를 사용한다.

var fullPath = Path.GetFullPath(@”..\Example.txt”);

 

 

3. 경로를 구성하는 방법

 

디렉터리 이름과 파일 이름을 결합해서 경로를 구성하려면 Path 클래스에 있는 Combine이라는 정적 메서드를 사용한다.

var dir = @”C:\Example\Temp”;
var fileName = “Sample.txt”
var path = Path.Combine(dir, fileName);

 

이 코드를 실행하면 path에 다음과 같은 문자열이 대입된다.

”C:\Example\Temp\Greeting.txt”

 

Path.Combine 메서드를 사용하면 디렉터리 이름의 끝이 ‘\’로 끝나든 그렇지 않든 적절하게 경로가 구성된다.

 

 

 

여러 개의 인수를 지정해서 경로를 구성할 수도 있다.

var topdir = @”C:\Example\”;
var subdir = @”Temp”;
var fileName = “Sample.txt”;
var path = Path.Combine(topdir, subdir, fileName);