C 檔案操作 獲取當前工作路徑的幾種方法

2021-10-14 04:26:50 字數 1669 閱讀 4129

1.採用getcurrentdirectory,用於獲取當前程序的當前目錄

2.getcwd獲取當前工作目錄,類似上一方法

#include

#include

char buffer[max_path]

;getcwd

(buffer, max_path)

;

執行得到"d:\《專案名》\《專案名》"

3.採用getmodulefilename,用於獲取所在exe/dll所在路徑下的目錄

tchar szpath[_max_path]=;

tchar szdrive[_max_drive]=;

tchar szdir[_max_dir]=;

tchar szfname[_max_fname]=;

tchar szext[_max_ext]=;

getmodulefilename

(null

,szpath,

sizeof

(szpath));

zeromemory

(g_wszprogrampath,

sizeof

(g_wszprogrampath));

_wsplitpath_s

(szpath, szdrive, szdir, szfname, szext)

;wsprintf

(g_wszprogrampath,_t(

"%s%s"

), szdrive, szdir)

;

第二種獲取寫法

cstring path;

getmodulefilename

(null

,path.

getbuffersetlength

(max_path+1)

,max_path)

;

path.

releasebuffer()

;int pos = path.

reversefind

('\\'

);

path = path.

left

(pos)

;

執行得到 「d:\《專案名》\x64\debug」

如果需要獲取dll所在路徑,則在getmodulefilename函式中第乙個引數傳入dll對應的module handle,

這個handle的獲取:將dllmain中的hinstdll儲存(可以用全域性變數儲存),然後作為第乙個引數傳給getmodulefilename

bool apientry dllmain

( hmodule hmodule,

dword ul_reason_for_call,

lpvoid lpreserved

)

其中,hmodule可以通過如下方式獲取

hmodule h =

getmodulehandle

("testlibrary.dll"

);

1.採用getcurrentdirectory,用於獲取當前程序的當前目錄

2.getcwd獲取當前工作目錄,類似上一方法

獲取當前檔案路徑 當前工作目錄路徑

import os current dir os.path.abspath os.path.dirname file 當前檔案下的絕對路徑 print current dir 輸出 e weidian lc requestinfo current dir1 os.path.dirname file ...

C 檔案操作 獲取當前工作路徑的幾種方法

1.採用getcurrentdirectory,用於獲取當前程序的當前目錄 2.getcwd獲取當前工作目錄,類似上一方法 include include char buffer max path getcwd buffer,max path 3.採用getmodulefilename,用於獲取所在...

學習筆記 C獲取當前工作路徑

有一些引數需要用檔案讀寫操作,需要製作dll,呼叫時需要路徑的適應性,獲取dll所在路徑,獲得當前exe可執行檔案所在的路徑。用 getcurrentdirectory 或者 getcwd 只能獲得當前工作路徑。如果 中對其他資料夾中的檔案操作時,則路徑不符合了。一 獲得當前工作路徑 char sz...