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

2021-09-14 01:32:45 字數 4581 閱讀 3558

c++,路徑的問題一直都讓人很頭疼,抽空整理一些方法;可以對比著python中os.path相關去看效果會更好。

1."./"

加不加都一樣

,就是指當前目錄

2."../"

表示當前目錄的上級目錄

,即當前的父目錄。

(這裡的當前目錄就是指

.vcxproj

和當前執行的

.cpp

檔案所在目錄,而不是

.sln

檔案所在目錄)

注意:前面兩種在工程資料夾裡面執行時沒有問題的,但是打包成

dll,

被呼叫就行不通了; 3.

獲取當前執行檔案的路徑(不包括檔名)——(

dll獲取自身路徑)

char

path[max_path];

getcurrentdirectory(max_path, path);

4.getmodulefilename(null,exefullpath,max_path);//

得到程式模組名稱,全路徑

,也就是當前執行程式的全路徑

getmodulefilename

函式原型

dword getmodulefilename(

hmodule hmodule,

//將要得到的模組的控制代碼;如果是當前模組,

null

lptstr lpfilename,

//儲存路徑快取區的名字

dword nsize

//快取區的大小

windows路徑操作api函式

路徑截斷與合併函式

pathremoveargs

去除路徑的引數

pathremovebackslash

去除路徑最後的反斜槓

「\」

pathaddbackslash

在路徑最後加上反斜槓

「\」

pathremoveblanks

去除路徑前後的空格

pathaddextension

在檔案路徑後面加上副檔名

pathremoveextension

去除檔案路徑副檔名

pathrenameextension

更改檔案路徑副檔名

pathremovefilespec

去除檔名,得到目錄

pathunquotespaces

去除路徑中的首尾空格

pathquotespaces

判斷路徑中是否有空格,有的話,就是用

「」引號把整個路徑包含起來

將乙個路徑追加到另乙個路徑後面

pathcombine

合併兩個路徑

pathskiproot

去掉路徑中的磁碟符或

unc部分。

pathstrippath

去掉路徑中的目錄部分,得到檔名。

pathstriptoroot

去掉路徑的檔案部分,得到根目錄。

pathcompactpath

根據畫素值生成符合長度的路徑。

如原始路徑:

c:\path1\path2\sample.txt

根據120

畫素截斷後為:

c:\pat...\sample.txt

根據25

畫素截斷後為

:   ...\sample.txt

pathcompactpathex

根據字元個數來生成符合長度的路徑。

pathsetdlgitempath

將路徑資料設定到對話方塊的子控制項上。

pathundecorate

去除路徑中的修飾

——具體還沒看明白,

msdn

的例子只是去掉了括號。

pathunexpandenvstrings

將路徑中部分資料替換為系統環境變數格式

路徑查詢比較函式

pathfindonpath

從路徑中查詢路徑

pathfindextension

查詢路徑的副檔名

pathfindfilename

獲取路徑的檔名

pathfindnextcomponent

查詢匹配路徑(不太熟悉)

pathfindsuffixarray

查詢給定的檔名是否有給定的字尾。

pathgetargs

獲取路徑引數

pathgetchartype

獲取路徑字元型別

pathgetdrivenumber

根據邏輯碟符返回驅動器序號

路徑轉換函式

pathrelativepathto

建立乙個路徑到另乙個路徑的相對路徑。

pathresolve

將乙個相對路徑或絕對路徑轉換為乙個合格的路徑,這個理解起來比較拗口。

pathcanonicalize

規範化路徑。將格式比較亂的路徑整理成規範的路徑格式。

pathbuildroot

根據給定的磁碟序號建立根目錄路徑

createdirectory

建立目錄

getshortpathname

將長路徑轉為

8.3格式的短路徑格式

getlongpathname

將短路徑格式轉為長路徑。

pathgetshortpath

將長路徑轉為短路徑格式(

8.3格式)

pathcreatefromurl 將

url路徑轉為

ms-dos格式

pathmakepretty

把路徑全部轉為小寫,增加可讀性。

pathmakesystemfolder

給路徑增加系統屬性

pathunmakesystemfolder

去除路徑中的系統屬性。

pathmakeuniquename

從模板建立統一的路徑格式

——沒用過,不熟悉

pathprocesscommand

生成乙個可執行的路徑,比如有引數的,會自動將路徑用

「」包含。

這在shellexecute

中比較有用。

路徑驗證函式

pathcleanupspec

去除路徑中不合法的字元

pathcommonprefix

比較並提取兩個路徑相同的字首

pathfileexists

驗證路徑是否存在

pathmatchspec

判斷路徑是否匹配制定的副檔名。

pathisdirectory

判斷路徑是否是乙個有效的目錄

pathisfilespec

驗證路徑是否乙個檔名(有可能是乙個路徑)

pathi***e

驗證路徑是否是可執行檔案。注意:不僅僅是

.exe

,還有.bat

,.com

,.src等

pathisroot

路徑是否為根路徑

pathisrelative

判斷路徑是否是相對路徑

pathiscontenttype

檢測檔案是否為制定型別。

例如:pathiscontenttype( 「hello.txt」 , 「text/plain」 )

返回true

pathiscontenttype( 「hello.txt」 , 「image/gif」 )

返回false

pathishtmlfile

判斷路徑是否是

html

檔案型別

——根據系統註冊型別判斷。

pathislfnfilespec

判斷路徑是否是長路徑格式

pathisnetworkpath

判斷路徑是否是乙個網路路徑。

pathisprefix

判斷路徑是否含有指定字首

pathissameroot

判斷路徑是否有相同根目錄

pathisslow

判斷路徑是否是乙個高度延遲的網路連線

——我也不太明白是啥意思。

pathissystemfolder

判斷路徑是否有系統屬性(屬性可以自己設定)

pathisunc

路徑是否是

unc格式(網路路徑)

pathisuncserver

路徑是否是

unc伺服器

pathisuncservershare

路徑是否僅僅是

unc的共享路徑格式

pathisurl

路徑是否是

格式。

pathyetanothermakeuniquename

基於已存在的檔案,自動建立乙個唯一的檔名。比較有用,比如存在

「新建檔案

」,此函式會建立檔名

「新建檔案(2)

」。

C C 路徑相關的API

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

路徑相關API

需要標頭檔案 shlwapi.h 其中有一些函式功能存在重複,我在認為比較常用的的函式上加紅。bool pathfileexists lpctstr lpszpath 功能 檢查檔案 路徑是否存在 lptstr pathfindfilename lpctstr ppath 功能 獲得路徑中的檔名 例...

和路徑相關的API

需要標頭檔案 shlwapi.h bool pathfileexists lpctstr lpszpath 功能 檢查檔案 路徑是否存在 lptstr pathfindfilename lpctstr ppath 功能 獲得路徑中的檔名 例如 pathfilefilename c program f...