_splitpath 或_wsplitpath函数的使用

贝叶斯神经网络(Bayesian Neural Network) 最近在研究贝叶斯神经网络,一些概念一直搞不清楚,这里整理一下相关内容,方便以后查阅。 阅读详情

_tsplitpath 函数可以从路径中分解出 盘符、目录、文件名、文件后缀等。是一个非常有用的函数。

RoutineRequired headerCompatibility

_splitpath

<stdlib.h>

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

_wsplitpath

<stdlib.h> or <wchar.h>

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

函数原型:
errno_t _splitpath_s(
   const char * path, //[in]全路径
   char * drive, //[out]   驱动器号,后跟一个冒号(:),如果你不需要驱动器号,可以传递NULL
   size_t driveNumberOfElements,//[in]  
Drive的缓冲区大小(单字节或款字节),如果drive为NULL,该参数必须为0
   char * dir, //[out] 
目录路径,包括尾部的斜杠,可以使用“\”,“/”或者都使用,如果不需要目录路径,可以传递NULL
   size_t dirNumberOfElements,  //[in] 
Dir的缓冲区大小(单字节或者款字节),如果dir为NULL,该参数必须为0
   char * fname, //[out]  
不带扩展名的文件名,如果不需要文件名,可以传递NULL
   size_t nameNumberOfElements,//[in]   Fname的缓冲区大小(单字节或者宽字节),如果fname为NULL,该参数必须为0
   char * ext, //[out] 
文件的扩展名,包括“.”,如果不需要扩展名,可以传递NULL
   size_t extNumberOfElements  //[in]  
Ext的缓冲区大小(单字节或者宽字节),如果ext为NULL,该参数必须为0
);

返回值:成功返回0,失败返回错误代码 EINVAL

_splitpath_s 该函数将全路径分割成四个部分,分别是驱动器,路径名,文件名(不带扩展名),扩展名。_splitpath_s会根据当前正在使用的多字节页码来识别多字节字符来处理宽字节字符串。_wsplitpath_s是_splitpath_s的多字节版本,_wsplitpath_s的参数是宽字符。

全路径被分成四个部分分别存储在不同的缓冲区中,每个部分允许的最大值为_MAX_DRIVE, _MAX_DIR,_MAX_FNAME, and_MAX_EXT,这些宏定义在stdlib.h中,如果这四个部分的缓冲区大小超过了定义的允许的最大值,那么会引起heap corruption.

以下是四个宏的定义的最大值:

Name

Value

_MAX_DRIVE

3

_MAX_DIR

256

_MAX_FNAME

256

_Max_EXT

256


源码:
[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. TCHAR szModuleFileName[MAX_PATH] = {0}; // 全路径名  
  2.   
  3. TCHAR drive[_MAX_DRIVE] = {0}; // 盘符名称,比如说C盘啊,D盘啊  
  4.   
  5. TCHAR dir[_MAX_DIR] = {0}; // 目录  
  6.   
  7. TCHAR fname[_MAX_FNAME] = {0}; // 进程名字  
  8.   
  9. TCHAR ext[_MAX_EXT] = {0}; //后缀,一般为exe或者是dll  
  10.   
  11.   
  12. if (NULL == GetModuleFileName(NULL, szModuleFileName, MAX_PATH)) //获得当前进程的文件路径  
  13.     return _T("");  
  14.   
  15. errno_t err = _tsplitpath_s( szModuleFileName,   
  16.     drive,  
  17.     dir,  
  18.     fname,  
  19.     ext); //分割该路径,得到盘符,目录,文件名,后缀名

  err = _splitpath_s( path_buffer, drive, _MAX_DRIVE, dir, _MAX_DIR, fname,
                       _MAX_FNAME, ext, _MAX_EXT );




零基础玩转STM32CubeIDE LL库:5分钟搞定串口通信(附完整代码) 本文为零基础开发者提供了一份STM32CubeIDE LL库串口通信的快速实战指南。通过CubeMX配置、LL库核心API详解,以及中断接收与环形缓冲区的完整代码实现,帮助读者在5分钟内搭建稳定可靠的串口收发框架,解决从HAL切换到LL库的常见困惑,提升嵌入式开发效率。 阅读详情

相关推荐

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 795

_wsplitpath_s

路径分割函数_wsplitpath_s()简介转自http://blog.sina.com.cn/s/blog_97312deb01017kbv.html  1. _wsplitpath_s()函数:函数功能:分割路径为 — 磁盘符,路径,FileTitle, extension四部分。例子:c:\user\you\test.docCstring strFullPath = _T(“c:\user...

abxd39的博客 2822

半导体EAP系统入门指南:从零开始理解设备自动化程序(附实战案例)

本文深入浅出地介绍了半导体制造中EAP(设备自动化程序)系统的核心作用与工作原理。EAP作为连接MES与生产设备的桥梁,负责指令翻译、数据采集与实时控制,是实现晶圆厂全自动化的关键。文章通过对比手动与自动模式,阐述了EAP在提升效率、保障良率方面的价值,并提供了一个实战案例,帮助读者从零构建对半导体CIM体系中这一关键组件的理解。

weixin_29200741的博客 737

_splitpath, _wsplitpath 分割路径

[cpp] view plaincopy #include    #include    using namespace std;      int main()   {       char *path="c:/renjingwei/ren/jing/wei/wo/张信哲--白月光.mp3";       char drive[5];    

jaken99的专栏 770

S-function入门及案例详解(1)——S-function基础介绍及基本案例

本专题将用三篇文章对S-function进行介绍及其案例详解。欢迎关注~ 目录一、S-Function简介二、详解sfuntmpl函数2.1 sfuntmpl函数介绍2.2 mdlInitializeSizes函数2.3 mdlDerivatives函数2.4 mdlUpdate函数2.5 mdlOutputs函数2.6 mdlGetTimeOfNextVarHit函数2.7 mdlTerminate函数三、案例1——对波形的幅值进行放大3.1 案例分析3.2 案例详解3.3 输出波形四、案例2——对波形的

Wendy的博客 7万+

PIN限幅二极管在接收机中的应用

本文介绍了接收机保护限幅器的工作原理及应用,重点阐述了PIN二极管在雷达收发机中的关键作用。文章指出,限幅器能有效保护接收机灵敏元件免受大功率信号损害,主要通过反射而非耗散功率来实现保护功能。文章详细分析了PIN二极管的层结构特性及其阻抗变化机制,解释了多级限幅器的设计原理(包括清理级和粗限幅器的配合使用),并介绍了通过添加检波二极管降低阈值水平的方法。最后指出,实际应用中限幅器通常采用3级或更少的设计。

weixin_49761275的博客 2376

_tsplitpath函数用法

1._tsplitpath(sFilename, sDrive, sDir, sFname, sExt); sFilename:文件的完整路径(如:"C:\WINDOWS\system32\mm.exe") sDrive:文件所在磁盘,含":"(如"C:") sDir:文件所在目录(如:"\WINDOWS\system32\") sFname:文件名(mm) sExt:文件扩展名(.ex

Foxfile_Hom的专栏 1588

利用Python暴力破解邻居家WiFi密码

如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀!

weixin_45841831的博客 6万+

如何快速分割文件路径,获取到你想要的内容

函数名称:_splitpath_s 函数作用:快速分割文件路径,分割内容包括盘符,文件名,扩展名等等 函数原型: errno_t _splitpath_s( const char * path, char * drive, size_t driveNumberOfElements, char * dir, size_t dirNumberOfElements

ATree的博客 4026

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

随着公共安全需求的日益增长,危险物品检测技术在社会安防、交通安检等领域发挥着重要作用。本文介绍了一个基于YOLO系列深度学习框架的危险物品检测系统,集成了YOLOv8、YOLOv7、YOLOv6和YOLOv5四种先进的物体检测算法。系统采用PySide6开发了用户友好的图形界面,提供了完整的训练代码、预训练模型和数据集构建方案。实验结果表明,该系统在危险物品检测任务上实现了高精度和高实时性,为实际应用提供了可靠的技术支持。

YOLO 156

彻底讲透 SAP 中的 client-safe:从 CDS、AMDP 到 ABAP Cloud 的客户端隔离设计

SAP系统中的client-safe概念定义了技术边界:访问client-dependent数据的对象必须确保只看到单个client数据,而访问client-independent数据的对象则天然满足条件。这一原则直接影响CDS视图、AMDP等核心组件,并与ABAP Cloud开发模型紧密集成。在业务系统中,client isolation要求用户只能看到当前登录client的数据。SAP通过语言版本、对象规则和静态检查强制执行这一约束,特别是在ABAP Cloud开发中,AMDP方法和发布的API必须满足

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3265

One splitpath implementation (platform independent)

#include"stdio.h" #include"stdlib.h" #include"wchar.h" typedefwchar_tWCHAR; void_wsplitpath(constWCHAR*path,WCHAR*drv,WCHAR*dir,WCHAR*name,WCHAR*ext) { constWCHAR*...

weixin_30268071的博客 76

Orange3实战教程:转换---预处理

部件提供了多种预处理方法,这些方法可以在单个预处理流程中组合使用。某些方法也可作为独立部件提供,支持更高级的技术和参数调整。连接到测试与评分:在交叉验证的每个批次中应用预处理器,随后学习器的预处理器会作用于预处理后的子集。连接到学习器:覆盖学习器的默认预处理流程,仅应用自定义流程(各学习器的默认步骤详见其文档)。直接连接到原始数据并输出预处理后的数据集,可能导致模型过拟合。:从原始数据中随机选择固定数量或百分比的特征,主要用于高级测试或教学用途。的预处理器输入,同时传入数据和学习器(如。

err2008的专栏 148

C++中对路径字符串解析的两个重要函数

(1)void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );   将给定的路径字符串分割成各个部分 参数: path:全路径(IN) drive:盘符(OUT) dir:除去盘符和文件名,中间的那段路径(OUT) fname:文件名,不包含扩展名(OUT)

zhongyoubing的博客 1138

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

分解全路径的文件名,字符串

(1)_splitpath, _wsplitpathBreak a path name into components.void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );void _wsplitpath( const wchar_t *path, wchar_t *

dunkall的专栏 1368

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

_tsplitpath_s(分解路径)

函数原型: errno_t _splitpath_s(    const char * path,    char * drive,    size_t driveNumberOfElements,    char * dir,    size_t dirNumberOfElements,    char * fname,    size_t nameNumberOfElement

booster123456789的专栏 7551

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

c语言路径分割

char strPath[_MAX_PATH]; char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_FNAME]; char ext[_MAX_EXT]; _makepath( strPath, "e", "\\cpp\\", "makepath", "cpp" ); _splitpath( strPath, drive, dir, fname, ext ); WCHAR wstrPath[_MAX_P.

aidingdanli的专栏 762

文件路径拆分

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...

weixin_34055910的博客 114

_tsplitpath 路径分割函数注意事项

例1: wchar_t z_wszPath[MAX_PATH] = L"C:\ProgramData\VMware\logs"; TCHAR tcsDir[_MAX_DIR] = {0}; //!< 路径名 TCHAR tcsDrive[_MAX_DRIVE] = {0}; //!< 磁盘名 TCHAR tcsFname[_MAX_FNAME] = {0}; //!< 文件名 TCHAR tcsExt[_MAX_EXT] = {0}; //!&lt

460

C++(不需要MFC库,不需要第三方库)对文件进行操作的几种方法

先说两个函数: _splitpath _makepath 需要的头文件是: 函数原型如下 void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext); void _makepath( char[ ]path, char *drive,

tzmyf234的专栏 1482

_splitpath_s()参数类型不符合

在unicode环境下CString是宽字符,通常是基于wchar_t * 或者 std::wstring来表示。_splitpath_s函数接收的是窄字符,所以才会报错,只需要将lpszPathName 改成窄字符即可。这是因为在多字节环境下CString是窄字符,通常是基于char*和charde。_splitpath_s()会报错,lpszPathName 类型不符合。3.转换方法(在unicode下)2.在unicode环境下。

m0_47817556的博客 296

_splitpath / _wsplitpath 将绝对路径分割为盘符、路径、文件名、扩展名。

今天分享下一个路径分割的API,可以将一个完整的绝对路径分割为:   盘符(包括冒号:)   路径(包含前面&后面的\,不含盘符&文件名)   文件名(不含扩展名)   扩展名(包含前面的.) 先不说话,直接上代码,代码功能:获取当前exe的完整路径,然后分割。 1 TCHAR szPath[MAX_PATH] = L""; 2 GetMod...

weixin_30412577的博客 238

_tsplitpath_s函数的使用

[译]_tsplitpath_s(分解路径) 函数原型: errno_t _splitpath_s(     const char * path,     char * drive,     size_t driveNumberOfElements,     char * dir,     size_t dirNumberOfElements,     char * fna

萧戈的专栏 2810

实用小程序工具 之一 快速批量修改文件名

实用小程序工具 本栏主要分享,这些年编写过的各种小程序,主要用于快速解决问题,而不是精湛代码。 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 批量修改文件名 批量修改文件名,是个常用功能,要实现这个功能,首先要找到需要修改的文件,其次修改文件名 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入...

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 2225
上一篇: PlaySound(WIN32 播放WAV声音)
下一篇: RGB、Lab等颜色空间的区别
self_mind
博客等级 码龄11年 32粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值