写C++,路径的问题一直都让人很头疼,抽空整理一些方法;也许以后会用到:

1."./" 加不加都一样,就是指当前目录

2."../" 表示当前目录的上级目录,即当前的父目录。

(这里的当前目录就是指.vcxproj和当前运行的.cpp文件所在目录,而不是.sln文件所在目录)

注意:前面两种在工程文件夹里面执行时没有问题的,但是打包成DLL,被调用就行不通了;

3.获取当前执行文件的路径(不包括文件名)——(dll获取自身路径)

char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH, path);

4.GetModuleFileName(NULL,exeFullPath,MAX_PATH);//得到程序模块名称,全路径,也就是当前运行程序的全路径

GetModuleFileName函数原型
DWORD GetModuleFileName(
HMODULE hModule, //将要得到的模块的句柄;如果是当前模块,NULL
LPTSTR lpFilename, //保存路径缓存区的名字
DWORD nSize //缓存区的大小

windows路径操作API函数

路径截断与合并函数

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)”。

C++路径的整理的更多相关文章

  1. jsp中的路径问题

    在学jsp的时候我每次都遇到路径的问题,每次都不能够说100%的把这搞定,这让我很烦恼,今天下午花了点时间来把路径问题整理了下. 一:首先我们在加载项目(我的项目名称是FinalExam)是的路径是h ...

  2. Python实现自动整理文件

    前言 工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢.整个桌面杂乱无章全是文档和资料.几乎快占满整个屏幕了,所有我必须要整理一下了.但是手动整理太费时间了,于是我想到了python. ...

  3. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  4. IOS开发基础知识--碎片13

    1:运行程序报the file couldn't be opened because you don't have permission to view it 解决办法:项目—>targets- ...

  5. Windows7服务无法启动的解决

    这周六,我接到了一个很诡异的案例,表现为任务栏右下角网络连接图标始终为一个红叉,已排除网卡硬件.链路和网卡驱动的问题.主板都新换了一块,可是问题依旧,这无疑将问题的根源指向了操作系统.本想通过网络疑难 ...

  6. springBoot actuator监控配置及使用

    准备环境: 一个springBoot工程 第一步:添加以下依赖 <dependency> <groupId>org.springframework.boot</group ...

  7. 使用Excel批量提取文件名

    Excel中如何快速选择所有奇数行或偶数行? 方法3:=MOD(ROW(),2) 总结:方法1和方法2的区别主要在ctrl键的使用 轻松将一个文件夹里所有的文件名提取出来,放到Excel表格里 &qu ...

  8. Scyther-Semantics and verification of Security Protocol

    1 .本书前一节主要是介作者自己的生平经历(读完感觉作者是个神童),目标明确作者13岁代码已经写的很溜了.自己也开了网络公司,但是后面又专注于自己的计算机基础理论,修了哲学的博士学位(不得不说很多专业 ...

  9. spring boot监控--actuator

    原文地址:http://blog.csdn.net/wh_ouyangshuang/article/details/48048111 spring-boot-actuator模块提供了一个监控和管理生 ...

随机推荐

  1. SWD学习笔记

    SWD其实和JTAG类似,是一种调试串口. JTAG大致了解了一下.JTAG(Joint Test Action Group)主要4 lines:TMS(模式选择),TCK(时钟),TDI(数据输入) ...

  2. One-Hot Encoding(独热编码)

    前几天查了一些与独热编码相关的资料后,发现看不进去...看不太懂,今天又查了一下,然后写了写代码,通过自己写例子加上别人的解释后,从结果上观察,明白了sklearn中独热编码做了什么事. 下面举个例子 ...

  3. QCMS代码审计:XSS+SQL+后台getshell

    qcms是一款比较小众的cms,最近更新应该是17年,代码框架都比较简单,但问题不少倒是... 网站介绍 QCMS是一款小型的网站管理系统.拥有多种结构类型,包括:ASP+ACCESS.ASP+SQL ...

  4. git 常用命令记录 -- 快捷&备忘

    1.安装 略2.git拉取远程分支 git config user.name git config user.email git config --global user.name xxxx git ...

  5. Codeforces 1304B. Longest Palindrome

    根据数据范围,暴力可以解决,对每一个串,找与其互为回文的串,或者判断自身是否为回文串,然后两两将互为回文的串排列在头尾,中间放且只能最多放一个自身为回文串的串,因为题目说每个串都是不同的 #inclu ...

  6. Ubuntu 编译 LAMP

    下载apache源码 http://httpd.apache.org/ 解压缩apache安装包,进入apache文件夹. 安装: apache2.2.9./configure --prefix=/u ...

  7. Python 爬取 北京市政府首都之窗信件列表-[Scrapy框架](2020年寒假小目标04)

    日期:2020.01.22 博客期:130 星期三 [代码说明,如果要使用此页代码,必须在本博客页面评论区给予说明] //博客总体说明 1.准备工作(本期博客) 2.爬取工作 3.数据处理 4.信息展 ...

  8. 本周总结(19年暑假)—— Part5

    日期:2019.8.11 博客期:111 星期日

  9. 【快学springboot】13.操作redis之String数据结构

    前言 在之前的文章中,讲解了使用redis解决集群环境session共享的问题[快学springboot]11.整合redis实现session共享,这里已经引入了redis相关的依赖,并且通过spr ...

  10. 全球定位IP位置 2018(离线版)

    球定位IP位置 2018(离线版) 这次写的软件使用Python写的,所以体积可能有点大 我特地写了GUI打包成了Exe可执行文件,方便小白使用== 只要输入目标ip就能显示目标所在的国家城市和经纬度 ...