0

这个问题可能有点幼稚,但我想知道是否可以在 C 代码中获取文件名的目录部分。例如,假设我有以下 Linux 文件:

/home/user/Documents/Work/report.txt

我想获得字符串“/home/user/Documents/Work/”

是否有任何 C 函数可以做这样的事情?此外,即使我以 Linux 文件为例,我也希望能够在任何操作系统上获取文件的目录列表。

先感谢您。

4

2 回答 2

2

使用strrchr()和替换最后一个分隔符'\0'

#define PATH_SEPARATOR_CHAR '/'
char text[10000] = "/home/user/Documents/Work/report.txt";
char *last = strrchr(text, PATH_SEPARATOR_CHAR);
if (last) {
    *last = 0;
    printf("path is '%s'\n", text);
} else {
    printf("Invalid text\n");
}
于 2013-05-01T11:01:39.000 回答
0

这是该dirname()功能的用途:

char path[] = "/var/www/index.html";
char *dirn = dirname(path);
printf("Dirname: %s\n", dirn);
于 2013-05-01T10:57:00.503 回答