路徑相關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
);
功能:從指定目錄樹中尋找文件

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章