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

 


 

posted on 2021-02-24 17:16  疯狂delphi  阅读(355)  评论(0编辑  收藏  举报

导航