路徑相關API

2021-09-30 04:56:58 字數 4557 閱讀 6449

需要標頭檔案:

shlwapi.h

其中有一些函式功能存在重複,我在認為比較常用的的函式上加紅。

bool pathfileexists(lpctstr lpszpath)

功能:檢查檔案

/路徑是否存在

lptstr pathfindfilename(lpctstr ppath)

功能:獲得路徑中的檔名

例如:pathfilefilename( 「c://program files ) = 「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: )

pszparam

返回「c:

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: )

返回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

boolpathmatchspec

( lpctstr pszfileparam,lpctstr pszspec)

功能:用帶有萬用字元(*號和

?號)的字串去比較另乙個字串

例如:pathmatchspec( 「 , 「*sina.com*」 )

返回true

pathmatchspec( 「c: , 「*.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 ;

呼叫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

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 功能 獲得路徑中的檔名 例如 pathfilefilename c program f...

C C 路徑相關的API

1.加不加都一樣,就是指當前目錄 2.表示當前目錄的上級目錄,即當前的父目錄。這裡的當前目錄就是指.vcxproj和當前執行的.cpp檔案所在目錄,而不是.sln檔案所在目錄 注意 前面兩種在工程資料夾裡面執行時沒有問題的,但是打包成dll,被呼叫就行不通了 3.獲取當前執行檔案的路徑 不包括檔名 ...

C C 路徑相關API函式介面的整理

寫c 路徑的問題一直都讓人很頭疼,抽空整理一些方法 可以對比著python中os.path相關去看效果會更好。1.加不加都一樣 就是指當前目錄 2.表示當前目錄的上級目錄 即當前的父目錄。這裡的當前目錄就是指 vcxproj 和當前執行的 cpp 檔案所在目錄,而不是 sln 檔案所在目錄 注意 前...