需要標頭檔案: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
);功能:從指定目錄樹中尋找檔案
路徑相關API
需要標頭檔案 shlwapi.h 其中有一些函式功能存在重複,我在認為比較常用的的函式上加紅。bool pathfileexists lpctstr lpszpath 功能 檢查檔案 路徑是否存在 lptstr pathfindfilename lpctstr ppath 功能 獲得路徑中的檔名 例...
C C 路徑相關的API
1.加不加都一樣,就是指當前目錄 2.表示當前目錄的上級目錄,即當前的父目錄。這裡的當前目錄就是指.vcxproj和當前執行的.cpp檔案所在目錄,而不是.sln檔案所在目錄 注意 前面兩種在工程資料夾裡面執行時沒有問題的,但是打包成dll,被呼叫就行不通了 3.獲取當前執行檔案的路徑 不包括檔名 ...
C C 路徑相關API函式介面的整理
寫c 路徑的問題一直都讓人很頭疼,抽空整理一些方法 可以對比著python中os.path相關去看效果會更好。1.加不加都一樣 就是指當前目錄 2.表示當前目錄的上級目錄 即當前的父目錄。這裡的當前目錄就是指 vcxproj 和當前執行的 cpp 檔案所在目錄,而不是 sln 檔案所在目錄 注意 前...