Linux C: 从路径中提取目录名和文件名
今天无意中发现了两个函数,可以方便的从给定的路径中提取目录名和文件名。以前介绍过用strrchr()函数去做的方式(Linux C: 从指定路径中获取文件名)。
不多废话,就是下面这两个函数:
bool generate_transfer_file(const uint8_t *audio_header, const char *transcode_file_path) { if (!audio_header) { ALOGE("input <audio_header> can not be null"); return false; } if (!transcode_file_path) { ALOGE("input <transcode_file_path> 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/dir2
basename(path) ==> dir.suffix
linux 也内置了这两个命令。。
使用时不要忘了包含头文件:libgen.h
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2017-07-12 1.Vector(向量容器)