Ada namadasar() .
Beri makan dengan jalur (dalam bentuk char*
) dan itu akan mengembalikan Anda nama dasar (yaitu nama file/direktori yang Anda inginkan) dalam bentuk char*
lainnya .
EDIT:
Saya lupa memberi tahu Anda bahwa versi POSIX dari basename()
memodifikasi argumennya. Jika Anda ingin menghindari hal ini, Anda dapat menggunakan basename()
versi GNU awali ini di sumber Anda:
#define _GNU_SOURCE
#include <string.h>
Sebagai gantinya versi basename()
ini akan mengembalikan string kosong jika Anda memberinya makan, mis. /usr/bin/
karena garis miring.
Anda ingin basename(), yang seharusnya ada di hampir semua sistem POSIX-ish:
http://www.opengroup.org/onlinepubs/000095399/functions/basename.html
#include <stdio.h>
#include <libgen.h>
int main() {
char name[] = "/foo/bar.txt";
printf("%s\n", basename(name));
return 0;
}
...
$ gcc test.c
$ ./a.out
bar.txt
$
#include <string.h>
char *basename(char const *path)
{
char *s = strrchr(path, '/');
if (!s)
return strdup(path);
else
return strdup(s + 1);
}
Dapatkan dirname/nama file terakhir dalam argumen jalur file di Bash
Java ProcessBuilder:Proses yang Dihasilkan Hang