Linux C: 从路径中提取目录名和文件名

365bet娱乐注册 2026-01-24 04:25:49 admin 497 228
Linux C: 从路径中提取目录名和文件名

今天无意中发现了两个函数,可以方便的从给定的路径中提取目录名和文件名。以前介绍过用strrchr()函数去做的方式(Linux C: 从指定路径中获取文件名)。

不多废话,就是下面这两个函数:

bool generate_transfer_file(const uint8_t *audio_header, const char *transcode_file_path) {

if (!audio_header) {

ALOGE("input can not be null");

return false;

}

if (!transcode_file_path) {

ALOGE("input can not be null");

return false;

}

FILE *transcode_file = fopen(transcode_file_path, "rb");

if (!transcode_file) {

ALOGE("open transcode file failed");

return false;

}

char *dir_name = dirname(transcode_file_path);

char *file_name = __posix_basename(transcode_file_path);

ALOGI("dir: %s, file name: %s", dir_name, file_name);

return true;

}

比如输入的路径是:/storage/emulated/0/Android/data/com.realsil.android.common.media/files/dest.aac, 可以输出:

dir: /storage/emulated/0/Android/data/com.realsil.android.common.media/files, file name: dest.aac

我是在android的环境下测试的,linux的话可能没有 __posix_basename()函数,可以找找basename()函数。

char *dirname(char *path);char *basename(char *path);

char *path="/dir1/dir2/dir.suffix";dirname(path) ==> /dir1/dir2basename(path) ==> dir.suffix

linux 也内置了这两个命令。。

使用时不要忘了包含头文件:libgen.h

相关推荐

365bet娱乐注册 蚩狞是什么意思

蚩狞是什么意思

📅 01-07 👁️ 735
365bet娱乐注册 一名黑客一个月赚多少钱(非常详细),零基础入门到精通,看这一篇就够了

一名黑客一个月赚多少钱(非常详细),零基础入门到精通,看这一篇就够了

📅 12-03 👁️ 2773
28365365体育 南方公园:真理之杖

南方公园:真理之杖

📅 07-20 👁️ 2831