您的当前位置:首页正文

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

2023-04-04 来源:好走旅游网
LinuxC:从路径中提取⽬录名和⽂件名

今天⽆意中发现了两个函数,可以⽅便的从给定的路径中提取⽬录名和⽂件名。以前介绍过⽤strrchr()函数去做的⽅式()。不多废话,就是下⾯这两个函数:

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.suffixlinux 也内置了这两个命令。。使⽤时不要忘了包含头⽂件:libgen.h

因篇幅问题不能全部显示,请点此查看更多更全内容