獲取檔案路徑 檔名 檔案的副檔名的方法

2021-06-07 10:18:39 字數 1879 閱讀 7980

在visual c++中沒有像delphi中提供的系統函式來實現這些功能。為了方便程式開發,筆者設計了乙個cpath類,用於對檔名稱進行處理。例項設計步驟如下:

(1)建立乙個控制台應用程式。

(2)定義乙個cpath類,向該類中新增3個靜態方法,分別用於獲取檔名、副檔名和包含副檔名的檔名。

class cpath

public:

//從包含完整路徑的檔名稱中去除路徑,包含副檔名

static bool getfilename(char szsrcfile, int nsrclen, char szdesfile, int ndeslen);

//獲取檔案的副檔名

static bool getextname(char szsrcfile, int nsrclen, char szdesfile, int ndeslen);

//獲取檔名,去除路徑和副檔名

static bool getfileshortname(char szsrcfile, int nsrclen, char szdesfile, int ndeslen);

bool cpath::getfilename(char szsrcfile, int nsrclen, char szdesfile, int ndeslen)

} return false; 

}bool cpath::getextname(char szsrcfile, int nsrclen, char szdesfile, int ndeslen)

}return false;

}bool cpath::getfileshortname(char szsrcfile, int nsrclen, char szdesfile, int ndeslen)

if (nfilelen < ndeslen - 1)

} return false;

}(3)在main函式中呼叫cpath類的getextname方法 獲取副檔名、呼叫getfileshortname方法獲取檔名,呼叫getfilename方法獲取包含副檔名的檔名。

int main(int argc, char* argv)

cout << "完整名稱為:" << *argv << endl;

char szdesfile[128] = ;

bool bret =cpath::getextname(*argv, strlen(*argv), szdesfile, 128);          //獲取副檔名

if (bret)

cout << "擴充套件名為:" << szdesfile << endl;                                           //輸出副檔名

char szshortname[128] = ;

bret =cpath::getfileshortname(*argv, strlen(*argv), szshortname, 128);  //獲取短檔名

if (bret)

cout << "短檔名:" << szshortname << endl;                                     //輸出資訊

char szfilename[128] = ;

bret =cpath::getfilename(*argv, strlen(*argv), szfilename, 128);             //獲取檔名

if (bret)

cout << "檔名:" << szfilename << endl;                                           //輸出資訊

return 0;

獲取檔名和副檔名

string afirstname afile.substring afile.lastindexof 1,afile.lastindexof afile.lastindexof 1 檔名 string alastname afile.substring afile.lastindexof 1,af...

C 獲取檔名及副檔名

摘自 system.io.path.getextension 檔名 changeextension 更改路徑字串的副檔名。combine 合併兩個路徑字串。getdirectoryname 返回指定路徑字串的目錄資訊。getextension 返回指定的路徑字串的副檔名。getfilename 返回...

C 獲取檔名及副檔名

c 獲取檔名及副檔名 string afirstname afile.substring afile.lastindexof 1,afile.lastindexof afile.lastindexof 1 檔名 string alastname afile.substring afile.lasti...