C-C中的函数_splitpath说明
相关资料:
https://blog.csdn.net/weikangc/article/details/45744445 原作者出处
引用头文件:
<stdlib.h>
函数原型如下:
void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext);
参数说明:
1.待处理文件名路径,完整的路径例如:"c:\windows\myfile.txt",不完整:"myfile.txt"。
2.驱动器盘符(drive)
3.中间的路径(dir)
4.文件名(fname)
5.后缀名(ext)
6.不想获取的可以直接填入NULL进行忽略,比如我只想截取文件的后缀名,那么这个函数可以如下调用:_splitpath(path, NULL, NULL, NULL, ext);
7.其中ext必须是已经分配了内存空间的字符串指针,否则会出错(c语言的基本特性,我就不赘述了)
完整示例(Qt版,本人亲试):
1 #include <stdlib.h>// 引入头文件 2 3 MainWindow::MainWindow(QWidget *parent) // 函数使用 4 : QMainWindow(parent) 5 , ui(new Ui::MainWindow) 6 { 7 ui->setupUi(this); 8 9 std::string sFilePath = "e:\\a\\b\\1.jpg"; 10 char sDirve[_MAX_DRIVE]; 11 char sDir[_MAX_DIR]; 12 char sFName[_MAX_FNAME]; 13 char sFExt[_MAX_EXT]; 14 _splitpath(sFilePath.c_str(), sDirve, sDir, sFName, sFExt); 15 qDebug() << QString::fromStdString(sFilePath);// "e:\\a\\b\\1.jpg" 16 qDebug() << QString::fromStdString(sDirve);// "e:" 17 qDebug() << QString::fromStdString(sDir);// "\\a\\b\\" 18 qDebug() << QString::fromStdString(sFName);// "1" 19 qDebug() << QString::fromStdString(sFExt);// ".jpg" 20 }
完整示例(C版,未测试):
1 #include <stdlib.h> 2 #include <stdio.h> 3 void main( void ) 4 { 5 char path_buffer[_MAX_PATH]; 6 char drive[_MAX_DRIVE]; 7 char dir[_MAX_DIR]; 8 char fname[_MAX_FNAME]; 9 char ext[_MAX_EXT]; 10 _makepath( path_buffer, "c", "\\sample\\crt\\", "makepath", "c" ); 11 printf( "Path created with _makepath: %s\n\n", path_buffer ); 12 _splitpath( path_buffer, drive, dir, fname, ext ); 13 printf( "Path extracted with _splitpath:\n" ); 14 printf( " Drive: %s\n", drive ); 15 printf( " Dir: %s\n", dir ); 16 printf( " Filename: %s\n", fname ); 17 printf( " Ext: %s\n", ext ); 18 } 19 20 OutPut: 21 Path created with _makepath: c:\sample\crt\makepath.c 22 Path extracted with _splitpath: 23 Drive: c: 24 Dir: \sample\crt\ 25 Filename: makepath 26 Ext: .c
作者:疯狂Delphi
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
欢迎关注我,一起进步!扫描下方二维码即可加我
![](https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_200417075318%E5%8A%A0%E6%88%91QQ.jpg)
![](https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_200417080925%E5%8A%A0%E6%88%91%E5%BE%AE%E4%BF%A1.jpg)