您的位置:首页 > 其它

文件路径的相关操作

2011-05-11 14:27 344 查看
标签: 软件

Window路径相关的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)
功能:在指定的目录中寻找文件。
参数:[b]pszFile 要寻找的文件名,确保 pszFile 有足够的大小来容纳 MAX_PATH 个字符。如果能找到指定的文件,该参数将返回文件的全路径。 [/b]

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

[b]LPTSTR PathGetArgs(LPCTSTR pszPath)[/b]
功能:从路径中分析参数
例如:LPTSTR pszParam = PathGetArgs( “notepad.exe c://temp.txt” )
pszParam 返回 “c://temp.txt”

[b]int PathGetDriveNumber(LPCTSTR lpsz)[/b]
功能:从路径中分析盘符
返回值:成功返回 0 –25 ,代表(A – Z),失败返回 –1

[b]BOOL PathIsContentType(LPCTSTR pszPath,LPCTSTR pszContentType)[/b]
功能:检查文件是否为指定的[b]ContentType[/b]
例如:PathIsContentType( “hello.txt” , “text/plain” ) 返回TRUE
PathIsContentType( “hello.txt” , “image/gif” ) 返回FALSE

[b]BOOL PathIsDirectory(LPCTSTR pszPath)[/b]
功能:检查路径是否为有效目录。注意路径不能包含文件名

[b]BOOL PathIsFileSpec(LPCTSTR lpszPath)[/b]
功能:检查路径中是否带有 ‘:’ ‘/’ 分隔符

[b]BOOL PathIsHTMLFile(LPCTSTR pszFile)[/b]
功能:检查是否为HTML文件

[b]BOOL PathIsPrefix(IN LPCTSTR pszPrefix,IN LPCTSTR pszPath)[/b]
功能:检查路径是否包含指定前缀,前缀如:盘符://”“..//” ”.//”
PathIsPrefix ( “c://” , “c://hello.txt” ) 返回 TRUE

[b]BOOL PathIsRelative(LPCTSTR lpszPath)[/b]
功能:检查路径是否是相对路径

[b]BOOL PathIsRoot(LPCTSTR pPath)[/b]
功能:检查路径是否是根目录

[b]BOOL PathIsSameRoot(LPCTSTR pszPath1,LPCTSTR pszPath2);[/b]
功能:比较两个路径是否在同一盘符

[b]BOOL PathIsUNC(LPCTSTR pszPath );[/b]
功能:判断路径是否是UNC格式

[b]BOOL PathIsURL(IN LPCTSTR pszPath );[/b]
功能:判断路径是否是URL

[b]BOOL PathMatchSpec( LPCTSTR pszFileParam,LPCTSTR pszSpec)[/b]
功能:用带有通配符(*号和?号)的字符串去比较另一个字符串
例如:[b]PathMatchSpec( “http://news.sina.com.cn” , “*sina.com*” ) 返回TRUE[/b]
[b]PathMatchSpec( “c://hello.txt” , “*.txt” ) [/b]返回TRUE

[b]void PathRemoveArgs(LPTSTR pszPath);[/b]
功能:删除路径中带有的参数

[b]LPTSTR PathRemoveBackslash(LPTSTR lpszPath);[/b]
功能:删除路径结尾多余的’/’符号

[b]void PathRemoveBlanks(LPTSTR lpszString);[/b]
功能:删除字符串头尾的空格

[b]void PathRemoveExtension( LPTSTR pszPath);[/b]
功能:删除路径后面的文件扩展名

[b]BOOL PathRemoveFileSpec( LPTSTR pszPath);[/b]
功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径。
例:szPath = “c://windows//system32//nt.dll” ;
调用PathRemoveFileSpec( szPath ) 后,szPath = “c://windows//system32”

[b]BOOL PathRenameExtension( IN OUT LPTSTR pszPath,LPCTSTR pszExt);[/b]
功能:替换路径后面的文件扩展名,如果pszPath后面不带扩展名,则新的扩展名会被添加上去。
pszPath pszPath至少需要MAX_PATH个字符的空间
pszExt 新的扩展名,必需包含 .

[b]void PathStripPath(LPTSTR pszPath );[/b]
功能:从路径中分析出文件名
例: PathStripPath( “c://test//hello.txt” ) => hello.txt

[b]BOOL PathStripToRoot( LPTSTR szRoot );[/b]
功能:从路径中分析出盘符

[b]void PathUnquoteSpaces( LPTSTR lpsz );[/b]
功能:从带引号的路径中取出路径
例:szPath = “/”c://Program Files/””
PathUnquoteSpaces( szPath ) => szPath = “c://Program Files”

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

[b]BOOL SearchTreeForFile([/b]
[b]IN LPSTR RootPath, [/b]
[b]IN LPSTR InputPathName, [/b]
[b]OUT LPSTR OutputPathBuffer [/b]
[b]);[/b]
功能:从指定目录树中寻找文件

调用函数的例子如下:
#001 //获取当前程序所在路径。
//#003 void TestGetExePath(void)
#004 {
#005 //
#006 const int nBufSize = 512;
#007 TCHAR chBuf[nBufSize];
#008 ZeroMemory(chBuf,nBufSize);
#009
#010 //获取当前执行文件的路径。
#011 if (GetModuleFileName(NULL,chBuf,nBufSize))
#012 {
#013 //输出带文件名称路径。
#014 OutputDebugString(chBuf);
#015 OutputDebugString(_T("/r/n"));
#016
#017 //获取文件路径。
#018 TCHAR* lpStrPath = chBuf;
#019 PathRemoveFileSpec(lpStrPath);
#020 OutputDebugString(lpStrPath);
#021 OutputDebugString(_T("/r/n"));
#022 }
#023
#024 }

输出的结果如下:
g:/work/windows_api/wincpp2/debug/WinCpp.exe
g:/work/windows_api/wincpp2/debug
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: