C/C++解析文件路径,获取盘符、路径、文件名及扩展名

其实也不算原创了,都是抄的msdn的内容。。。。

经常要处理跟文件相关的东西,免不了要做一些解析路径以及文件名扩展名的工作。

以前傻傻的自己去strstr斜杠,然后慢慢匹配解析,后来才发现有API做好了相应的工作了。。。

函数原型:

[cpp]  view plain  copy
  1. void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );  
  2.   
  3. void _wsplitpath( const wchar_t *path, wchar_t *drive, wchar_t *dir, wchar_t *fname, wchar_t *ext );  

其中,各个参数:

path:全路径(IN)

drive:盘符(OUT)

dir:除去盘符和文件名,中间的那段路径(OUT)

fname:文件名,不包含扩展名(OUT)

ext:文件扩展名,包含那个点.(OUT)

使用例子:(直接拿MSDN的例子了)

[cpp]  view plain  copy
  1. #include <stdlib.h>  
  2. #include <stdio.h>  
  3.   
  4. void main( void )  
  5. {  
  6.    char path_buffer[_MAX_PATH];  
  7.    char drive[_MAX_DRIVE];  
  8.    char dir[_MAX_DIR];  
  9.    char fname[_MAX_FNAME];  
  10.    char ext[_MAX_EXT];  
  11.   
  12.    _makepath( path_buffer, "c""\\sample\\crt\\", "makepath", "c" );  
  13.    printf( "Path created with _makepath: %s\n\n", path_buffer );  
  14.    _splitpath( path_buffer, drive, dir, fname, ext );  
  15.    printf( "Path extracted with _splitpath:\n" );  
  16.    printf( "  Drive: %s\n", drive );  
  17.    printf( "  Dir: %s\n", dir );  
  18.    printf( "  Filename: %s\n", fname );  
  19.    printf( "  Ext: %s\n", ext );  
  20. }  
  21.   
  22.   
  23. Output  
  24.   
  25. Path created with _makepath: c:\sample\crt\makepath.c  
  26.   
  27. Path extracted with _splitpath:  
  28.   Drive: c:  
  29.   Dir: \sample\crt\  
  30.   Filename: makepath  
  31.   Ext: .c  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值