본문 바로가기
개발언어/C#

[C#] 파일경로에서 확장자, 파일명, 경로 추출하는 함수와 예제

by 창용이랑 2022. 8. 30.
728x90

파일의 전체 경로를 가져왔을 때 파일명, 확장자, 경로, 디렉토리등을 따로 분리해서 사용하고 싶을 때가 있습니다.

 

 저도 파일을 다루기 위해 파일명을 따로 분리해야 되고 확장자가 무엇이냐에 따라 별로 처리를 해야 됩니다. 일일이 문자를 쪼개서 구분하는 것이 아니라 Path 클래스로 간단하게 추출이 가능합니다.

 

1. 파일명을 추출하고 싶을 때 

// 파일 명을 추출합니다. 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetFileName(filepath));
결과 : “Survive You.mp3”

 

2. 파일의 확장자를 가져오고 싶을 때

// . 을 포함한 확장자를 가져오고 싶을때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetExtension(filepath));
결과 : “.mp3”

 

3. 파일의 확장자를 제외한 파일명을 가져오고 싶을 때

// 확장자가 없는 파일명을 가져오고 싶을때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetFileNameWithoutExtension(filepath));
결과 : “Survive You”

 

4. 파일을 제외한 경로명만 가져오고 싶을때

// 파일을 제외한 경로명만 가져올때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetDirectoryName(filepath));
결과 : “D:\다운로드\POP”

 

5. 파일과 경로를 합치고 싶을 때

 

 파일과 경로를 분리해 놓고 다시 합치고 싶을 때 Path.Combine() 함수를 사용하시면 됩니다. 문자열을 합쳐도 되겠지만 Combine 을 사용하면 합칠 때 경로의 구분자인 역슬레쉬를 안넣어도 자동으로 알아서 추가해 줍니다.

 

// 파일을 제외한 경로명만 가져올때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.Combine("D:\\다운로드\\POP", "Survive You.mp3"));
Console.WriteLine(Path.Combine("D:\\다운로드\\POP\\", "Survive You.mp3"));
결과 : “D:\다운로드\POP\Survive You.mp3”
      “D:\다운로드\POP\Survive You.mp3”

 

출처 : https://mainia.tistory.com/2349