HOWTO · Csharp
C#의 경로에서 파일 이름 가져 오기
이 문서에서는 C#의 지정된 경로에서 파일 이름을 추출하는 방법을 소개합니다. GetFileName() 메서드를 포함합니다.
이 페이지의 내용
C#에서 파일 시스템 경로의 마지막 구성 요소를 가져오려면 Path.GetFileName를 System.IO에서 사용합니다. 확장자를 포함한 파일 이름을 반환하므로 경로를 직접 분리할 필요가 없습니다. 이 메서드는 경로 문자열에서 텍스트를 추출할 뿐, 파일을 열거나 확인하지는 않습니다.
Path.GetFileName를 사용해 경로의 마지막 구성 요소 가져오기
경로 문자열을 Path.GetFileName에 전달합니다. 반환값은 현재 운영 체제가 디렉터리 구분자로 인식하는 문자 뒤의 마지막 구성 요소입니다. 경로가 summary.csv로 끝나면 반환되는 이름은 summary.csv입니다.
다음 예제를 실행합니다:
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "reports/2026/summary.csv";
string fileName = Path.GetFileName(path);
Console.WriteLine(fileName);
}
}
summary.csv
이 프로그램은 추출한 이름을 콘솔에 출력합니다. 코드는 자체 완결형이며 슬래시로 구분된 경로를 사용합니다. 일반적인 .NET 플랫폼에서는 슬래시를 디렉터리 구분자로 인식합니다.
절대 경로, 상대 경로 및 플랫폼별 경로 처리
이 메서드는 절대 경로와 상대 경로 모두에 사용할 수 있습니다. 절대 경로에는 루트나 드라이브부터의 위치가 포함되고, 상대 경로는 애플리케이션의 작업 디렉터리를 기준으로 해석됩니다. Path.GetFileName는 두 경로 중 어느 것도 파일 시스템에 맞춰 해석하지 않고, 전달된 문자열의 마지막 구성 요소만 반환합니다.
구분자 처리는 Path의 플랫폼별 규칙을 따릅니다. reports/summary.csv와 같은 슬래시 구분 경로는 Unix 계열 시스템과 Windows에서 사용할 수 있습니다. C:\Reports\summary.csv와 같은 백슬래시 구분 Windows 경로는 Windows에서 의도한 대로 해석됩니다. Unix 계열 시스템에서 백슬래시는 일반 문자이므로, Windows 형식의 경로를 전달하면 summary.csv만이 아니라 전체 문자열이 반환될 수 있습니다. 다른 운영 체제에서 만든 경로를 처리한다면 현재 플랫폼도 그 형식을 똑같이 해석한다고 가정하지 말고, 해당 형식을 명시적으로 처리하세요.
확장자를 제외한 파일 이름 가져오기
호출하는 쪽에서 summary.csv 대신 summary가 필요하면 Path.GetFileNameWithoutExtension를 사용합니다. 이 메서드는 마지막 구성 요소를 추출한 뒤 마지막 확장자를 제거합니다. 예를 들어 /를 구분자로 인식하는 플랫폼에서 reports/summary.csv를 전달하면 summary를 반환합니다.
표시하거나 비교할 값에 확장자가 필요하지 않을 때 이 API를 사용하세요. 확장자를 별도로 가져오려면 Path.GetExtension을 사용하면 됩니다. 확장자 앞의 마침표도 함께 반환됩니다. 이 메서드들은 경로 텍스트를 처리할 뿐, 파일의 존재 여부를 확인하지 않습니다.
파일 경로와 URL 및 파일 검증 구분하기
URL이 반드시 파일 시스템 경로인 것은 아닙니다. URL에는 스킴, 호스트, 쿼리 또는 프래그먼트가 포함될 수 있고, URL의 경로 세그먼트는 URL 규칙을 따릅니다. URL 파싱을 대신해 URL을 Path.GetFileName에 전달하지 마세요. 입력이 URL이면 URI 파서를 사용한 다음, 디코딩된 이름을 애플리케이션의 필요에 따라 처리하세요.
이름을 추출한다고 해서 경로가 검증되거나 안전하게 사용할 수 있음이 보장되거나 파일의 존재 여부가 확인되는 것은 아닙니다. 이는 별개의 작업입니다. 해당 작업에 적합한 경로 검증 및 파일 시스템 API를 사용하고, 파일을 열거나 만들기 전에 애플리케이션의 보안 규칙을 적용하세요. 파일 시스템 경로 문자열에서 마지막 구성 요소를 가져오는 작업에는 Path.GetFileName가 직접 사용할 수 있는 API입니다.