我是靠谱客的博主 超级月饼,这篇文章主要介绍C++ 获取路径的各个部分,现在分享给大家,希望可以做个参考。

需求:

1, 在开发过程中,获取当前应用程序的所在路径是比较常见的需求,一般情况下我们封装现有的API进行使用: GetModuleFileName() 。不过,根据具体应用的需求,可能不仅仅要找程序所在的当前路径,也有可能是当前路径的上一层目录,或者其子目录,并且还有需求是获取该应用程序的名字等等。


2,当我们需要对一些文件进行处理时,可能会在该文件目录下生成日志文件,或者是以该文件名称作为关键信息生成其他的文件或文件夹。


当我们遇到类似的问题时,就需要对路径进行解析处理了,当然前提就是找到路径中的各个部分。


其实在windows下已经有了现成的库函数来做这样的操作:

复制代码
1
_splitpath()
先看一下该函数的说明:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*** *_splitpath() - split a path name into its individual components * *Purpose: * to split a path name into its individual components * *Entry: * path - pointer to path name to be parsed * drive - pointer to buffer for drive component, if any * dir - pointer to buffer for subdirectory component, if any * fname - pointer to buffer for file base name component, if any * ext - pointer to buffer for file name extension component, if any * *Exit: * drive - pointer to drive string. Includes ':' if a drive was given. * dir - pointer to subdirectory string. Includes leading and trailing * '/' or '', if any. * fname - pointer to file base name * ext - pointer to file extension, if any. Includes leading '.'. * *Exceptions: * *******************************************************************************/

使用方法:

复制代码
1
2
3
4
5
6
7
8
9
10
TCHAR szPath[_MAX_PATH] = {0}; //完整路径 GetModuleFileName(NULL, szPath, _MAX_PATH); TCHAR szDrive[_MAX_DRIVE] = {0}; //驱动器名称 TCHAR szDir[_MAX_DIR] = {0}; //路径 TCHAR szFileName[_MAX_FNAME] = {0}; //文件名 TCHAR szFileExt[_MAX_EXT] = {0}; //文件扩展名 _tsplitpath(szPath, szDrive, szDir, szFileName, szFileExt);


最后

以上就是超级月饼最近收集整理的关于C++ 获取路径的各个部分的全部内容,更多相关C++内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部