其实也不算原创了,都是抄的msdn的内容。。。。
经常要处理跟文件相关的东西,免不了要做一些解析路径以及文件名扩展名的工作。
以前傻傻的自己去strstr斜杠,然后慢慢匹配解析,后来才发现有API做好了相应的工作了。。。
函数原型:
void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );
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的例子了)
#include
#include
void main( void )
{
char path_buffer[_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" );
printf( "Path created with _makepath: %s\n\n", path_buffer );
_splitpath( path_buffer, drive, dir, fname, ext );
printf( "Path extracted with _splitpath:\n" );
printf( " Drive: %s\n", drive );
printf( " Dir: %s\n", dir );
printf( " Filename: %s\n", fname );
printf( " Ext: %s\n", ext );
}
Output
Path created with _makepath: c:\sample\crt\makepath.c
Path extracted with _splitpath:
Drive: c:
Dir: \sample\crt\
Filename: makepath
Ext: .c