一些常用到的文件路径相关的API
2017-11-30 09:59
453 查看
Path API
[align=left]需要头文件:shlwapi.h[/align]
[align=left]其中有一些函数功能存在重复,我在认为比较常用的的函数上加红。[/align]
[align=left]BOOL PathFileExists(LPCTSTR lpszPath)[/align]
[align=left]功能:检查文件/路径是否存在[/align]
[align=left]LPTSTR PathFindFileName(LPCTSTR pPath)[/align]
[align=left]功能:获得路径中的文件名[/align]
例如:
PathFileFileName( “c://Program Files//File.txt” ) = “File.txt”。
[align=left]如果路径中不包含文件名,则返回值是最下面的目录名。[/align]
[align=left]LPTSTR PathFindExtension(LPCTSTR pPath)[/align]
[align=left]功能:获取路径或文件名中的文件扩展名[/align]
[align=left]例如:PathFindExtension( “File.txt” ) = “.txt”[/align]
[align=left]LPTSTR PathFindNextComponent(LPCTSTR pszPath)[/align]
[align=left]例如:PathFindNextComponent( “c://Program Files//Directory” ) = “Program Files//[/align]
Directory”
[align=left]PathFindNextComponent( “c://Program Files” ) = “Program Files”[/align]
[align=left]BOOL PathFindOnPath( IN OUT LPTSTR pszFile , IN LPCTSTR * ppszOtherDirs)[/align]
[align=left]功能:在指定的目录中寻找文件。[/align]
参数:
pszFile
要寻找的文件名,确保 pszFile
有足够的大小来容纳 MAX_PATH
个字符。如果能找到指定的文件,该参数将返回文件的全路径。
ppszOtherDirs该参数是首先要寻找的目录列表,它可以为NULL,如果为NULL,函数将在系统目录,当前目录和由PATH设定的目录中查找。
[align=left]LPTSTR PathGetArgs(LPCTSTR pszPath)[/align]
[align=left]功能:从路径中分析参数[/align]
[align=left]例如:LPTSTR pszParam = PathGetArgs( “notepad.exe c://temp.txt” )[/align]
pszParam
返回 “c://temp.txt”
[align=left]int PathGetDriveNumber(LPCTSTR lpsz)[/align]
[align=left]功能:从路径中分析盘符[/align]
返回值:成功返回
0 –25 ,代表(A – Z),失败返回
–1
[align=left]BOOL PathIsContentType(LPCTSTR pszPath,LPCTSTR pszContentType)[/align]
[align=left]功能:检查文件是否为指定的ContentType[/align]
例如:PathIsContentType( “hello.txt” , “text/plain” )
返回TRUE
PathIsContentType( “hello.txt” , “image/gif” )
返回FALSE
[align=left]BOOL PathIsDirectory(LPCTSTR pszPath)[/align]
[align=left]功能:检查路径是否为有效目录。注意路径不能包含文件名[/align]
[align=left]BOOL PathIsFileSpec(LPCTSTR lpszPath)[/align]
功能:检查路径中是否带有
‘:’ 和
‘/’ 分隔符
[align=left]BOOL PathIsHTMLFile(LPCTSTR pszFile)[/align]
[align=left]功能:检查是否为HTML文件[/align]
[align=left]BOOL PathIsPrefix(IN LPCTSTR pszPrefix,IN LPCTSTR pszPath)[/align]
功能:检查路径是否包含指定前缀,前缀如:”盘符://” 、“..//”
、”.//”
PathIsPrefix ( “c://” , “c://hello.txt” )
返回 TRUE
[align=left]BOOL PathIsRelative(LPCTSTR lpszPath)[/align]
[align=left]功能:检查路径是否是相对路径[/align]
[align=left]BOOL PathIsRoot(LPCTSTR pPath)[/align]
[align=left]功能:检查路径是否是根目录[/align]
[align=left]BOOL PathIsSameRoot(LPCTSTR pszPath1,LPCTSTR pszPath2);[/align]
[align=left]功能:比较两个路径是否在同一盘符[/align]
[align=left]BOOL PathIsUNC(LPCTSTR pszPath );[/align]
[align=left]功能:判断路径是否是UNC格式[/align]
[align=left]BOOL PathIsURL(IN LPCTSTR pszPath );[/align]
[align=left]功能:判断路径是否是URL[/align]
BOOL
PathMatchSpec( LPCTSTR pszFileParam,LPCTSTR pszSpec)
[align=left]功能:用带有通配符(*号和?号)的字符串去比较另一个字符串[/align]
例如:PathMatchSpec( “http://news.sina.com.cn”
, “*sina.com*” ) 返回TRUE
PathMatchSpec( “c://hello.txt” , “*.txt” )
返回TRUE
[align=left]void PathRemoveArgs(LPTSTR pszPath);[/align]
[align=left]功能:删除路径中带有的参数[/align]
[align=left]LPTSTR PathRemoveBackslash(LPTSTR lpszPath);[/align]
[align=left]功能:删除路径结尾多余的’/’符号[/align]
[align=left]void PathRemoveBlanks(LPTSTR lpszString);[/align]
[align=left]功能:删除字符串头尾的空格[/align]
[align=left]void PathRemoveExtension( LPTSTR pszPath);[/align]
[align=left]功能:删除路径后面的文件扩展名[/align]
[align=left]BOOL PathRemoveFileSpec( LPTSTR pszPath);[/align]
[align=left]功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。[/align]
[align=left]例:szPath = “c://windows//system32//nt.dll” ;[/align]
调用PathRemoveFileSpec( szPath )
后,szPath = “c://windows//system32”
[align=left]BOOL PathRenameExtension( IN OUT LPTSTR pszPath,LPCTSTR pszExt);[/align]
[align=left]功能:替换路径后面的文件扩展名,如果pszPath后面不带扩展名,则新的扩展名会被添加上去。[/align]
[align=left]pszPath pszPath至少需要MAX_PATH个字符的空间[/align]
pszExt
新的扩展名,必需包含 .
号
[align=left]void PathStripPath(LPTSTR pszPath );[/align]
[align=left]功能:从路径中分析出文件名[/align]
例:
PathStripPath( “c://test//hello.txt” ) => hello.txt
[align=left]BOOL PathStripToRoot( LPTSTR szRoot );[/align]
[align=left]功能:从路径中分析出盘符[/align]
[align=left]void PathUnquoteSpaces( LPTSTR lpsz );[/align]
[align=left]功能:从带引号的路径中取出路径[/align]
[align=left]例:szPath = “/”c://Program Files/””[/align]
[align=left]PathUnquoteSpaces( szPath ) => szPath = “c://Program Files”[/align]
[align=left]附另一路径相关函数,由ImageHlp提供[/align]
[align=left]BOOL SearchTreeForFile([/align]
[align=left]IN LPSTR RootPath,[/align]
[align=left]IN LPSTR InputPathName,[/align]
[align=left]OUT LPSTR OutputPathBuffer[/align]
[align=left]);[/align]
[align=left]功能:从指定目录树中寻找文件[/align]
常见的字符串处理函数有:
StrChr ,StrChrI,StrCmpN,StrCmpNI,StrCSpn,StrCSpnI,StrDup,StrFormatByteSize(字节大小格式化),StrFromTimeInterval,StrIsIntlEqual,StrNCat,StrPBrk,StrRChr,StrRChrI,StrRStrI,StrSpn,StrStr,StrStrI,StrToInt,StrToIntEx(可以讲16进制字符串转换为10进制值),StrTrim(删除收尾空字符串),StrCat,StrCmp,StrCpy,ChrCmpI,
常见的Path处理函数有:
PathAddBackslash,PathAddExtension,PathAppend,PathBuildRoot, PathCanonicalize,PathCombine,PathCompactPath,PathCompactPathEx,PathCommonPrefix,PathFileExists,PathFindExtension,PathFindFileName(类似与basename中后面部分,获取得到整个文件名),PathFindNextComponent(获取得到除盘符外的所有文件名),PathFindOnPath,PathGetArgs,PathGetCharType,PathGetDriveNumber,PathIsDirectory,PathIsFileSpec(仅有文件名部分,不能够包括:和\符号),PathIsPrefix,PathIsRelative,PathIsRoot,PathIsSameRoot,PathIsUNC,PathIsUNCServer,PathIsUNCServerShare,PathIsContentType,PathIsURL,
PathMakePretty,PathMatchSpec,PathParseIconLocation,PathQuoteSpaces,PathRelativePathTo,PathRemoveArgs,PathRemoveBackslash,PathRemoveBlanks,
PathRemoveExtension,PathRemoveFileSpec,PathRenameExtension,PathSearchAndQualify,PathSetDlgItemPath,PathSkipRoot,PathStripPath,
PathStripToRoot,PathUnquoteSpaces,PathMakeSystemFolder,PathUnmakeSystemFolder,PathIsSystemFolder
常见的注册表处理函数有:
SHDeleteEmptyKey,SHDeleteKey,SHDeleteValue,SHGetValue,SHSetValue,SHQueryValueEx,SHEnumKeyEx,SHEnumValue,SHQueryInfoKey,
SHRegCreateUSKey,SHRegOpenUSKey,SHRegQueryUSValue,SHRegWriteUSValue,SHRegDeleteUSValue,SHRegDeleteEmptyUSKey,SHRegEnumUSKey,
SHRegEnumUSValue,SHRegQueryInfoUSKey,SHRegGetUSValue,SHRegSetUSValue,SHRegGetBoolUSValue,SHOpenRegStream,
其他函数
创建GDI帮助函数
SHCreateShellPalette
DLLGETVERSIONPROC指针,用来获取dll的版本号
和DllInstall原型定义
STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine);
[align=left]需要头文件:shlwapi.h[/align]
[align=left]其中有一些函数功能存在重复,我在认为比较常用的的函数上加红。[/align]
[align=left]BOOL PathFileExists(LPCTSTR lpszPath)[/align]
[align=left]功能:检查文件/路径是否存在[/align]
[align=left]LPTSTR PathFindFileName(LPCTSTR pPath)[/align]
[align=left]功能:获得路径中的文件名[/align]
例如:
PathFileFileName( “c://Program Files//File.txt” ) = “File.txt”。
[align=left]如果路径中不包含文件名,则返回值是最下面的目录名。[/align]
[align=left]LPTSTR PathFindExtension(LPCTSTR pPath)[/align]
[align=left]功能:获取路径或文件名中的文件扩展名[/align]
[align=left]例如:PathFindExtension( “File.txt” ) = “.txt”[/align]
[align=left]LPTSTR PathFindNextComponent(LPCTSTR pszPath)[/align]
[align=left]例如:PathFindNextComponent( “c://Program Files//Directory” ) = “Program Files//[/align]
Directory”
[align=left]PathFindNextComponent( “c://Program Files” ) = “Program Files”[/align]
[align=left]BOOL PathFindOnPath( IN OUT LPTSTR pszFile , IN LPCTSTR * ppszOtherDirs)[/align]
[align=left]功能:在指定的目录中寻找文件。[/align]
参数:
pszFile
要寻找的文件名,确保 pszFile
有足够的大小来容纳 MAX_PATH
个字符。如果能找到指定的文件,该参数将返回文件的全路径。
ppszOtherDirs该参数是首先要寻找的目录列表,它可以为NULL,如果为NULL,函数将在系统目录,当前目录和由PATH设定的目录中查找。
[align=left]LPTSTR PathGetArgs(LPCTSTR pszPath)[/align]
[align=left]功能:从路径中分析参数[/align]
[align=left]例如:LPTSTR pszParam = PathGetArgs( “notepad.exe c://temp.txt” )[/align]
pszParam
返回 “c://temp.txt”
[align=left]int PathGetDriveNumber(LPCTSTR lpsz)[/align]
[align=left]功能:从路径中分析盘符[/align]
返回值:成功返回
0 –25 ,代表(A – Z),失败返回
–1
[align=left]BOOL PathIsContentType(LPCTSTR pszPath,LPCTSTR pszContentType)[/align]
[align=left]功能:检查文件是否为指定的ContentType[/align]
例如:PathIsContentType( “hello.txt” , “text/plain” )
返回TRUE
PathIsContentType( “hello.txt” , “image/gif” )
返回FALSE
[align=left]BOOL PathIsDirectory(LPCTSTR pszPath)[/align]
[align=left]功能:检查路径是否为有效目录。注意路径不能包含文件名[/align]
[align=left]BOOL PathIsFileSpec(LPCTSTR lpszPath)[/align]
功能:检查路径中是否带有
‘:’ 和
‘/’ 分隔符
[align=left]BOOL PathIsHTMLFile(LPCTSTR pszFile)[/align]
[align=left]功能:检查是否为HTML文件[/align]
[align=left]BOOL PathIsPrefix(IN LPCTSTR pszPrefix,IN LPCTSTR pszPath)[/align]
功能:检查路径是否包含指定前缀,前缀如:”盘符://” 、“..//”
、”.//”
PathIsPrefix ( “c://” , “c://hello.txt” )
返回 TRUE
[align=left]BOOL PathIsRelative(LPCTSTR lpszPath)[/align]
[align=left]功能:检查路径是否是相对路径[/align]
[align=left]BOOL PathIsRoot(LPCTSTR pPath)[/align]
[align=left]功能:检查路径是否是根目录[/align]
[align=left]BOOL PathIsSameRoot(LPCTSTR pszPath1,LPCTSTR pszPath2);[/align]
[align=left]功能:比较两个路径是否在同一盘符[/align]
[align=left]BOOL PathIsUNC(LPCTSTR pszPath );[/align]
[align=left]功能:判断路径是否是UNC格式[/align]
[align=left]BOOL PathIsURL(IN LPCTSTR pszPath );[/align]
[align=left]功能:判断路径是否是URL[/align]
BOOL
PathMatchSpec( LPCTSTR pszFileParam,LPCTSTR pszSpec)
[align=left]功能:用带有通配符(*号和?号)的字符串去比较另一个字符串[/align]
例如:PathMatchSpec( “http://news.sina.com.cn”
, “*sina.com*” ) 返回TRUE
PathMatchSpec( “c://hello.txt” , “*.txt” )
返回TRUE
[align=left]void PathRemoveArgs(LPTSTR pszPath);[/align]
[align=left]功能:删除路径中带有的参数[/align]
[align=left]LPTSTR PathRemoveBackslash(LPTSTR lpszPath);[/align]
[align=left]功能:删除路径结尾多余的’/’符号[/align]
[align=left]void PathRemoveBlanks(LPTSTR lpszString);[/align]
[align=left]功能:删除字符串头尾的空格[/align]
[align=left]void PathRemoveExtension( LPTSTR pszPath);[/align]
[align=left]功能:删除路径后面的文件扩展名[/align]
[align=left]BOOL PathRemoveFileSpec( LPTSTR pszPath);[/align]
[align=left]功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。[/align]
[align=left]例:szPath = “c://windows//system32//nt.dll” ;[/align]
调用PathRemoveFileSpec( szPath )
后,szPath = “c://windows//system32”
[align=left]BOOL PathRenameExtension( IN OUT LPTSTR pszPath,LPCTSTR pszExt);[/align]
[align=left]功能:替换路径后面的文件扩展名,如果pszPath后面不带扩展名,则新的扩展名会被添加上去。[/align]
[align=left]pszPath pszPath至少需要MAX_PATH个字符的空间[/align]
pszExt
新的扩展名,必需包含 .
号
[align=left]void PathStripPath(LPTSTR pszPath );[/align]
[align=left]功能:从路径中分析出文件名[/align]
例:
PathStripPath( “c://test//hello.txt” ) => hello.txt
[align=left]BOOL PathStripToRoot( LPTSTR szRoot );[/align]
[align=left]功能:从路径中分析出盘符[/align]
[align=left]void PathUnquoteSpaces( LPTSTR lpsz );[/align]
[align=left]功能:从带引号的路径中取出路径[/align]
[align=left]例:szPath = “/”c://Program Files/””[/align]
[align=left]PathUnquoteSpaces( szPath ) => szPath = “c://Program Files”[/align]
[align=left]附另一路径相关函数,由ImageHlp提供[/align]
[align=left]BOOL SearchTreeForFile([/align]
[align=left]IN LPSTR RootPath,[/align]
[align=left]IN LPSTR InputPathName,[/align]
[align=left]OUT LPSTR OutputPathBuffer[/align]
[align=left]);[/align]
[align=left]功能:从指定目录树中寻找文件[/align]
常见的字符串处理函数有:
StrChr ,StrChrI,StrCmpN,StrCmpNI,StrCSpn,StrCSpnI,StrDup,StrFormatByteSize(字节大小格式化),StrFromTimeInterval,StrIsIntlEqual,StrNCat,StrPBrk,StrRChr,StrRChrI,StrRStrI,StrSpn,StrStr,StrStrI,StrToInt,StrToIntEx(可以讲16进制字符串转换为10进制值),StrTrim(删除收尾空字符串),StrCat,StrCmp,StrCpy,ChrCmpI,
常见的Path处理函数有:
PathAddBackslash,PathAddExtension,PathAppend,PathBuildRoot, PathCanonicalize,PathCombine,PathCompactPath,PathCompactPathEx,PathCommonPrefix,PathFileExists,PathFindExtension,PathFindFileName(类似与basename中后面部分,获取得到整个文件名),PathFindNextComponent(获取得到除盘符外的所有文件名),PathFindOnPath,PathGetArgs,PathGetCharType,PathGetDriveNumber,PathIsDirectory,PathIsFileSpec(仅有文件名部分,不能够包括:和\符号),PathIsPrefix,PathIsRelative,PathIsRoot,PathIsSameRoot,PathIsUNC,PathIsUNCServer,PathIsUNCServerShare,PathIsContentType,PathIsURL,
PathMakePretty,PathMatchSpec,PathParseIconLocation,PathQuoteSpaces,PathRelativePathTo,PathRemoveArgs,PathRemoveBackslash,PathRemoveBlanks,
PathRemoveExtension,PathRemoveFileSpec,PathRenameExtension,PathSearchAndQualify,PathSetDlgItemPath,PathSkipRoot,PathStripPath,
PathStripToRoot,PathUnquoteSpaces,PathMakeSystemFolder,PathUnmakeSystemFolder,PathIsSystemFolder
常见的注册表处理函数有:
SHDeleteEmptyKey,SHDeleteKey,SHDeleteValue,SHGetValue,SHSetValue,SHQueryValueEx,SHEnumKeyEx,SHEnumValue,SHQueryInfoKey,
SHRegCreateUSKey,SHRegOpenUSKey,SHRegQueryUSValue,SHRegWriteUSValue,SHRegDeleteUSValue,SHRegDeleteEmptyUSKey,SHRegEnumUSKey,
SHRegEnumUSValue,SHRegQueryInfoUSKey,SHRegGetUSValue,SHRegSetUSValue,SHRegGetBoolUSValue,SHOpenRegStream,
其他函数
创建GDI帮助函数
SHCreateShellPalette
DLLGETVERSIONPROC指针,用来获取dll的版本号
和DllInstall原型定义
STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine);
相关文章推荐
- 一些常用到的文件路径相关的API
- 一些常用到的文件路径相关的API .
- 一些常用到的文件路径相关的API
- 『windows』文件路径,字符串相关API
- Path简介(针对路径的小demo,讲解一些常用的API)
- 文件路径,字符串相关API
- nodejs中文件路径相关API:path
- qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径(最简单的方法是保持一样的安装路径,最方便的办法是设置qt.conf文件)
- 一些服务的配置文件路径及常用linux命令
- Java虚拟机是以相对路径来寻找所用到的库文件和其它一些相关文件
- Qt学习: 文件相关常用QDir路径类和QFileInfo类.
- nodejs中常用文件操作API及相关API
- Java 文件I/O常用API 以及上传下载路径问题汇总
- 文件路径相关的API
- Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令①
- 实战c++中的string系列--string的替换、查找(一些与路径相关的操作)
- JS数组和对象的一些原生方法(常用API)
- iphone常用的文件存放路径
- Linux中常用C/C++一些头文件的作用
- 文件路径相关