
파일 경로에서 파일명만 가져오는 작업을 직접 만들게 된다면, 먼저 해당 문자열을 디렉토리 구분자(윈도우는 \, 리눅스 계열은 /)를 기준으로 잘라 배열로 만듭니다. split 함수 처럼요.
배열의 길이 값을 배열 인덱스로 넘겨주면, 즉 배열의 가장 마지막 요소 값을 파일명이라고 가정할 수 있습니다.
윈도우에는 역슬래시(\), 리눅스 계열에서는 슬래시(/)가 파일명에 들어갈 수 없기 때문에 실제 운영체제별 파일경로 상에서 얻어온 경로 값이라면 이렇게 추출한 값은 믿고 쓸 수 있겠습니다.
이에 대한 실제 파이썬 구현과 해설은 코딩도장의 글을 참고하시면 되겠습니다.
사실 프로그램 짜다 보면 가끔 이런 기능을 라이브러리로 제공해주지 않아 직접 구현해야될 때가 있습니다. 좀 번거롭죠...
1 | import std.stdio; |
위 코드는 아래와 같이 출력 됩니다.
C:\D\dmd2\windows\bin\dmd.exe
dmd.exe
dmd.
dmd
dmd.exe
baseName함수에 대상이 되는 경로 문자열만 넣으면 파일명만 리턴 받을 수 있습니다.
그 뒤에 추가로 넣은 문자열은 리턴 받을 파일명의 우측 기준으로 문자열을 지웁니다.
이 외에도 파일 경로에서 파일명을 얻거나, 경로명을 조작할 때 std.path에 유용한 기능들이 많습니다.
참고해서 보시면 좋을 듯 하네요.


덧글
가 파일이름이라는 게... 말씀해주시는 내용을 제가 잘 이해를 못한 것 같습니다. 좀 더 자세히 말씀해주실 수 있으신가요?
위 글의 착오 내용이라면 바로 정정토록 하겠습니다.