和路徑相關的API

2021-05-06 16:07:25 字數 3604 閱讀 7293

需要標頭檔案: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 檔案所在目錄 注意 前...