Path API大全

Path API大全PathAPI                 需要头文件:shlwapi.h其中有一些函数功能存在重复,我在认为比较常用的的函数上加红。 BOOLPathFileExists(LPCTSTRlpszPath)功能:检查文件/路径是否存在  LPTSTRPathFindFileName(LPCTSTRpPath)功能:获得路径中的文件名例

大家好,又见面了,我是你们的朋友全栈君。

Path API                 

需要头文件:shlwapi.h

其中有一些函数功能存在重复,我在认为比较常用的的函数上加红。

 

BOOL PathFileExists(LPCTSTR lpszPath)

功能:检查文件/路径是否存在

 

 

LPTSTR PathFindFileName(LPCTSTR pPath)

功能:获得路径中的文件名

例如: PathFileFileName( “c://Program Files//File.txt” ) = “File.txt”

如果路径中不包含文件名,则返回值是最下面的目录名。

 

 

 

LPTSTR PathFindExtension(LPCTSTR pPath)

功能:获取路径或文件名中的文件扩展名

例如:PathFindExtension( “File.txt” ) = “.txt”

 

 

 

LPTSTR PathFindNextComponent(LPCTSTR pszPath)

例如:PathFindNextComponent( “c://Program Files//Directory” ) = “Program Files//

Directory”

         PathFindNextComponent( “c://Program Files” ) = “Program Files”

 

 

 

BOOL PathFindOnPath( IN OUT LPTSTR   pszFile , IN LPCTSTR * ppszOtherDirs)

功能:在指定的目录中寻找文件。

参数:

pszFile  要寻找的文件名,确保 pszFile 有足够的大小来容纳 MAX_PATH 个字符。如果能找到指定的文件,该参数将返回文件的全路径。

ppszOtherDirs   该参数是首先要寻找的目录列表,它可以为NULL,如果为NULL,函数将在系统目录,当前目录和由PATH设定的目录中查找。

 

 

 

LPTSTR PathGetArgs(LPCTSTR pszPath)

功能:从路径中分析参数

例如:LPTSTR pszParam = PathGetArgs( “notepad.exe c://temp.txt” )

         pszParam 返回 “c://temp.txt”

 

 

 

int PathGetDriveNumber(LPCTSTR lpsz)

功能:从路径中分析盘符

返回值:成功返回 0 –25 ,代表(A – Z),失败返回 –1

 

 

 

BOOL PathIsContentType(LPCTSTR pszPath,LPCTSTR pszContentType)

功能:检查文件是否为指定的ContentType

例如:PathIsContentType( “hello.txt” , “text/plain” ) 返回TRUE

        PathIsContentType( “hello.txt” , “image/gif” ) 返回FALSE

 

 

 

BOOL PathIsDirectory(LPCTSTR pszPath)

功能:检查路径是否为有效目录。注意路径不能包含文件名

 

 

 

BOOL PathIsFileSpec(LPCTSTR lpszPath)

功能:检查路径中是否带有 ‘:’ ‘/’ 分隔符

 

 

 

BOOL PathIsHTMLFile(LPCTSTR pszFile)

功能:检查是否为HTML文件

 

 

 

BOOL PathIsPrefix(IN LPCTSTR  pszPrefix,IN LPCTSTR  pszPath)

功能:检查路径是否包含指定前缀,前缀如:盘符://” 、“..//” ”.//”

PathIsPrefix ( “c://” , “c://hello.txt” ) 返回       TRUE

 

 

 

BOOL PathIsRelative(LPCTSTR lpszPath)

功能:检查路径是否是相对路径

 

 

BOOL PathIsRoot(LPCTSTR pPath)

功能:检查路径是否是根目录

 

 

BOOL PathIsSameRoot(LPCTSTR pszPath1,LPCTSTR pszPath2);

功能:比较两个路径是否在同一盘符

 

 

BOOL PathIsUNC(LPCTSTR pszPath );

功能:判断路径是否是UNC格式

 

 

BOOL PathIsURL(IN LPCTSTR pszPath );

功能:判断路径是否是URL

 

 

BOOL PathMatchSpec( LPCTSTR pszFileParam,LPCTSTR pszSpec)

功能:用带有通配符(*号和?号)的字符串去比较另一个字符串

例如:PathMatchSpec( “http://news.sina.com.cn” , “*sina.com*” ) 返回TRUE

         PathMatchSpec( “c://hello.txt” , “*.txt” ) 返回TRUE

 

 

void PathRemoveArgs(LPTSTR pszPath);

功能:删除路径中带有的参数

 

 

LPTSTR PathRemoveBackslash(LPTSTR lpszPath);

功能:删除路径结尾多余的’/’符号

 

 

 

void PathRemoveBlanks(LPTSTR lpszString);

功能:删除字符串头尾的空格

 

 

void PathRemoveExtension( LPTSTR pszPath);

功能:删除路径后面的文件扩展名

 

 

BOOL PathRemoveFileSpec( LPTSTR pszPath);

功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。

例:szPath = “c://windows//system32//nt.dll” ;

调用PathRemoveFileSpec( szPath ) 后,szPath = “c://windows//system32”

 

 

BOOL PathRenameExtension( IN OUT LPTSTR pszPath,LPCTSTR pszExt);

功能:替换路径后面的文件扩展名,如果pszPath后面不带扩展名,则新的扩展名会被添加上去。

pszPath  pszPath至少需要MAX_PATH个字符的空间

pszExt    新的扩展名,必需包含 .

 

 

void PathStripPath(LPTSTR pszPath );

功能:从路径中分析出文件名

例: PathStripPath( “c://test//hello.txt” ) => hello.txt

 

 

 

BOOL PathStripToRoot( LPTSTR szRoot );

功能:从路径中分析出盘符

 

 

void PathUnquoteSpaces( LPTSTR lpsz );

功能:从带引号的路径中取出路径

例:szPath = “/”c://Program Files/””

       PathUnquoteSpaces( szPath )  => szPath = “c://Program Files”

 

 

 

附另一路径相关函数,由ImageHlp提供

BOOL SearchTreeForFile(

  IN LPSTR RootPath,      

  IN LPSTR InputPathName, 

  OUT LPSTR OutputPathBuffer 

);

功能:从指定目录树中寻找文件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159171.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++容器类_类的容器

    c++容器类_类的容器什么是容器首先,我们必须理解一下什么是容器,在C++中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码重用问题的良好的解决方案”

    2025年11月7日
    2
  • 23、Camunda DMN决策初探

    23、Camunda DMN决策初探DMN 决策表初探 CamundaDMN 决策 Camunda 中使用 DMN 决策 CamundaDMN 案例创建学生分配班级审核流程创建决策开启流程 校长审核时 指定决策表中所需要的变量注意参考资料 CamundaDMN 决策 Camunda 中使用 DMN 决策 Camunda 支持 DMN1 3 版本 在 BPMN 业务活动流程中 可通过业务规则任务调用 DMN 决策 DMN 决策目的是想把业务代码和决策进行解耦 使决策分析人员只需关心决策即可 CamundaDMN 案例通过幼儿园学生年龄 age 和身高 height 分配

    2025年12月9日
    2
  • web ide「建议收藏」

    web ide「建议收藏」webide在做项目中,遇到一个这样的场景,当我们把系统服务搭建好,给用户显示的时候,如果用命令行一步步的走,感觉会把他们弄晕,另外,交付系统,还得一步步的写操作流程,遇到一点问题,就还得补充进去,所以我就想,能不能搭建一个web-ide,用户直接把代码复制上去,点点点,就能完成系统的完整体验。当然,还有就是Web-ide对于移动办公、合作开发也有帮助,比如我想把我的代码给别人看,直接在他电…

    2022年10月18日
    2
  • 第二十七周微职位

    第二十七周微职位

    2022年3月8日
    36
  • 信号带宽与信道带宽「建议收藏」

    信号带宽与信道带宽「建议收藏」
    信号带宽是信号频谱的宽度,也就是信号的最高频率分量与最低频率分量之差,譬如,一个由数个正弦波叠加成的方波信号,其最低频率分量是其基频,假定为f=2kHz,其最高频率分量是其7次谐波频率,即7f=7×2=14kHz,因此该信号带宽为7f-f=14-2=12kHz。
       信道带宽则限定了允许通过该信道的信号下限频率和上限频率,也就是限定了一个频率通带。比如一个信道允许的通带为1.5kHz至15kHz,其带宽为13.5kHz,上面这个方波信号的所有频率成分当然能从该信道通过,如果

    2022年10月11日
    2
  • 简单页面+java后台+数据库,实现从页面对数据库的增删改查

    简单页面+java后台+数据库,实现从页面对数据库的增删改查在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表我用一个新闻的例子来实现,首先编写java后台程序java后台程序:我们用三层的模式进行设计:分别是servlet,service,dao层,并且建立个实体包用来打包数据库和后台要用到的属性截个图首先是写功能写的顺序分别是从servlet,service,dao层…

    2022年5月22日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号