full-path에서 파일이름 부분만 분리하고 싶습니다.

simpid의 이미지

예를들어...

/home/simpid/dev/svr/test.txt

라는 패스가 있을때... test.txt를 분리할 수 있는 방법이 있을까요?

Windows에선 splitpath, makepath가 있어서 유용했는데...

직접 만들어 볼 수 도 있겠지만...
라이브러리에 있다면 이용하면 좋으니까요...

직접 만들어야 할까요?

PS. Linux환경에선.. 런타임 라이브러리를 별로 아는게 없어서.. 어려움이 있습니다.
FindFirstFile, FineNextFile이 없어서..
opendir, readdir등을 이용했는데... 이렇게 하면 와일드카드를 못써서.. fnmatch란것도 힘들게 찾아 이용해야 했습니다.
makepath, splitpath같은것도... 그냥 이용하면 되는데.. Linux에서는 대응하는걸 찾기 힘듬니다. ^^;

verena의 이미지

/usr/local/include/favoriteheader.h

가장 간단한 방법으로는 strtok(..., "/");를 사용하셔서 마지막 토근을 얻어오시면 되겠죠.

변형된 방법으론 위의 문자열을 reverse (h.redaeh...)하셔서 strtok(..., "/");를 하셔되 되겠죠. :wink:

c++을 사용하신다면 stl을 이용하시면 될거에요.

너무 평범한 방법이라서.... ㅜ.ㅜ

stoneshim의 이미지

man 3 basename

우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자

cjh의 이미지

파일이름 분리하는 것은 basename()과 dirname() 함수를 쓰면 됩니다.
libc안에 있을 겁니다. man 3 basename

--
익스펙토 페트로눔

simpid의 이미지

여러분들의 답변 감사합니다.

뭔가 있긴 있을줄 알았습니다.

직접 짜면 짜겠지만...
새로운 OS를 접하면서.. 알아가는 재미가 있으니까요.. ^^;

verena의 이미지

오 basename()이 있었군요.

저도 리눅스 초보에요. ^^. 덕분에 저도 알고 가네요 ^^

이한길의 이미지

제일 간단한건... 뒤에서부터 문자열 처리 하면 되지요..

'/'문자 나올때까지..

그런다음에 뒷부분만 복사..

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.springnote.com
http://hangulee.egloos.com

조성현의 이미지

hangulee wrote:
'/'문자 나올때까지..

ls file.txt 에는 무한 loop ?

이한길의 이미지

설마 모르고 딴지 거신건 아닐텐데...

거야.. 문자열 갯수 세서.. 그만큼까지만 해봐야지요..쩝~

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.springnote.com
http://hangulee.egloos.com

eagle123의 이미지

헉 지금까지 함수를 만들어서 사용했었는데 기존 함수가 있었군요 T.T

그럼 혹시 파일명에서 확장자를 분리하는 함수도 있을까요?

abcd.txt 면 abcd 와 txt 로 분리하는 것이 있을것 같은데요.

new5244의 이미지

dirname()/ basename() 이라는 함수가 있었군요...

전 여태까지 ptr = strrchr(path, '/') 를 이용해서
제일 마지막 / 을 찾는 방법을 사용했었는데...

from saibi

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.