VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 309|回复: 3

[分享] VC++文件路径和文件名处理函数 非常有用!

[复制链接]
77_avatar_middle
最佳答案
31 
online_vip 发表于 2020-1-5 23:17:46 | 显示全部楼层 |阅读模式
网上看到的不错的操作文件路径和文件名的一些函数,收集过来,以后肯定用的上!
之前经常用这个:PathFileExists,这回看到其他这么一堆也是非常不错啦,意外收获,哈哈!

相关的头文件:
  1. #include <shlwapi.h">
复制代码


路径截断与合并函数
GetModuleFileName 得到模块路径名
PathRemoveArgs 去除路径的参数
PathRemoveBackslash 去除路径最后的反斜杠“\”
PathAddBackslash 在路径最后加上反斜杠“\”
PathRemoveBlanks 去除路径前后的空格
PathAddExtension 在文件路径后面加上扩展名
PathRemoveExtension 去除文件路径扩展名
PathRenameExtension 更改文件路径扩展名
PathRemoveFileSpec 去除文件名,得到目录
PathUnquoteSpaces 去除路径中的首尾空格
PathQuoteSpaces 判断路径中是否有空格,有的话,就是用“”引号把整个路径包含起来
    
PathAppend 将一个路径追加到另一个路径后面
PathCombine 合并两个路径
    
PathSkipRoot 去掉路径中的磁盘符或UNC部分。
PathStripPath 去掉路径中的目录部分,得到文件名。
PathStripToRoot 去掉路径的文件部分,得到根目录。
    
PathCompactPath 根据像素值生成符合长度的路径。如原始路径:C:\path1\path2\sample.txt 根据120像素截断后为:C:\pat...\sample.txt 根据25像素截断后为:   ...\sample.txt
PathCompactPathEx 根据字符个数来生成符合长度的路径。
    
PathSetDlgItemPath 将路径数据设置到对话框的子控件上。
PathUndecorate 去除路径中的修饰——具体还没看明白,MSDN的例子只是去掉了括号。
PathUnExpandEnvStrings 将路径中部分数据替换为系统环境变量格式


路径查找比较函数   
PathFindOnPath 从路径中查找路径
PathFindExtension 查找路径的扩展名
PathFindFileName 获取路径的文件名
PathFindNextComponent 查找匹配路径
PathFindSuffixArray 查找给定的文件名是否有给定的后缀。
PathGetArgs 获取路径参数
PathGetCharType 获取路径字符类型
PathGetDriveNumber 根据逻辑盘符返回驱动器序号


路径转换函数   
PathRelativePathTo 创建一个路径到另一个路径的相对路径。
PathResolve 将一个相对路径或绝对路径转换为一个合格的路径,这个理解起来比较拗口。
PathCanonicalize 规范化路径。将格式比较乱的路径整理成规范的路径格式。
PathBuildRoot 根据给定的磁盘序号创建根目录路径
CreateDirectory 创建目录
    
GetShortPathName 将长路径转为8.3格式的短路径格式
GetLongPathName 将短路径格式转为长路径。
PathGetShortPath 将长路径转为短路径格式(8.3格式)
PathCreateFromUrl 将URL路径转为MS-DOS格式
PathMakePretty 把路径全部转为小写,增加可读性。
PathMakeSystemFolder 给路径增加系统属性
PathUnmakeSystemFolder 去除路径中的系统属性。
PathMakeUniqueName 从模板创建统一的路径格式——没用过,不熟悉
PathProcessCommand 生成一个可执行的路径,比如有参数的,会自动将路径用“”包含。这在ShellExecute中比较有用。


路径验证函数   
PathCleanupSpec 去除路径中不合法的字符
PathCommonPrefix 比较并提取两个路径相同的前缀
PathFileExists 验证路径是否存在
PathMatchSpec 判断路径是否匹配制定的扩展名。
PathIsDirectory 判断路径是否是一个有效的目录
PathIsFileSpec 验证路径是否一个文件名(有可能是一个路径)
PathIsExe 验证路径是否是可执行文件。注意:不仅仅是.exe,还有.bat,.com,.src等
PathIsRoot 路径是否为根路径
PathIsRelative 判断路径是否是相对路径
PathIsContentType 检测文件是否为制定类型。例如:PathIsContentType("hello.txt", "text/plain") 返回TRUE,PathIsContentType("hello.txt", "image/gif") 返回FALSE
PathIsHTMLFile 判断路径是否是html文件类型——根据系统注册类型判断。
PathIsLFNFileSpec 判断路径是否是长路径格式
PathIsNetworkPath 判断路径是否是一个网络路径。
PathIsPrefix 判断路径是否含有指定前缀
PathIsSameRoot 判断路径是否有相同根目录
PathIsSlow 判断路径是否是一个高度延迟的网络连接——我也不太明白是啥意思。
PathIsSystemFolder 判断路径是否有系统属性(属性可以自己设定)
PathIsUNC 路径是否是UNC格式(网络路径)
PathIsUNCServer 路径是否是UNC服务器
PathIsUNCServerShare 路径是否仅仅是UNC的共享路径格式
PathIsURL 路径是否是http格式。
PathYetAnotherMakeUniqueName 基于已存在的文件,自动创建一个唯一的文件名。比较有用,比如存在“新建文件”,此函数会创建文件名“新建文件(2)“

评分

参与人数 1驿站币 +2 收起 理由
86_avatar_small x635775712 + 2 _splitpath 这个函数比较好

查看全部评分





上一篇:模拟点击360退出
下一篇:你生成的转储文件有问题吗?
75_avatar_middle
最佳答案
18 
online_supermod 发表于 2020-1-5 23:26:02 | 显示全部楼层
卧槽  这个 厉害了  还有没有   老哥  接着来不要停
77_avatar_middle
最佳答案
31 
ico_lz  楼主| 发表于 2020-1-5 23:31:11 | 显示全部楼层
wl1383838438 发表于 2020-1-5 23:26
卧槽  这个 厉害了  还有没有   老哥  接着来不要停

哈哈,很实用吧,我也跟发现新大陆似的
66_avatar_middle
最佳答案
0 
donate_vip 发表于 2020-4-12 10:09:56 | 显示全部楼层
本帖最后由 mrhuang77 于 2020-4-12 10:12 编辑

这个很实用啊
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-9-27 18:57

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表