以前曾用 GetWindowsDirectory、GetSystemDirectory、GetTempPath 等函數(shù)獲取系統(tǒng)常用文件夾;
也用過
SHGetSpecialFolderLocation、SHGetPathFromIDList 函數(shù)獲取過更多常用路徑;
但這都不如用 GetEnvironmentVariable 獲取系統(tǒng)變量來得快.
//譬如 %WINDIR% 是表示系統(tǒng)目錄的系統(tǒng)變量, 可以這樣獲取:
var
s: string;
begin
s := GetEnvironmentVariable('WINDIR');
ShowMessage(s); {C:\WINDOWS}
end;
%WINDIR% {系統(tǒng)目錄 - C:\WINDOWS}
%SYSTEMROOT% {系統(tǒng)目錄 - C:\WINDOWS}
%SYSTEMDRIVE% {系統(tǒng)根目錄 - C:}
%HOMEDRIVE% {當(dāng)前用戶根目錄 - C:}
%USERPROFILE% {當(dāng)前用戶目錄 - C:\Documents and Settings\wy}
%HOMEPATH% {當(dāng)前用戶路徑 - \Documents and Settings\wy}
%TMP% {當(dāng)前用戶臨時(shí)文件夾 - C:\DOCUME~1\wy\LOCALS~1\Temp}
%TEMP% {當(dāng)前用戶臨時(shí)文件夾 - C:\DOCUME~1\wy\LOCALS~1\Temp}
%APPDATA% {當(dāng)前用戶數(shù)據(jù)文件夾 - C:\Documents and Settings\wy\Application Data}
%PROGRAMFILES% {程序默認(rèn)安裝目錄 - C:\Program Files}
%COMMONPROGRAMFILES% {文件通用目錄 - C:\Program Files\Common Files}
%USERNAME% {當(dāng)前用戶名 - wy}
%ALLUSERSPROFILE% {所有用戶文件目錄 - C:\Documents and Settings\All Users}
%OS% {操作系統(tǒng)名 - Windows_NT}
%COMPUTERNAME% {計(jì)算機(jī)名 - IBM-B63851E95C9}
%NUMBER_OF_PROCESSORS% {處理器個(gè)數(shù) - 1}
%PROCESSOR_ARCHITECTURE% {處理器芯片架構(gòu) - x86}
%PROCESSOR_LEVEL% {處理器型號 - 6}
%PROCESSOR_REVISION% {處理器修訂號 - 0905}
%USERDOMAIN% {包含用戶賬號的域 - IBM-B63851E95C9}
%COMSPEC% {C:\WINDOWS\system32\cmd.exe}
%PATHEXT% {執(zhí)行文件類型 - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pyo;.pyc;.py;.pyw}
%PATH% {搜索路徑}
另外, 可以利用 .. 到上層目錄, 如:
var
s: string;
begin
s := GetCurrentDir;
ShowMessage(s); {C:\Documents and Settings\wy\My Documents\RAD Studio\Projects}
SetCurrentDir('..');
s := GetCurrentDir;
ShowMessage(s); {C:\Documents and Settings\wy\My Documents\RAD Studio}
SetCurrentDir('..\..');
s := GetCurrentDir;
ShowMessage(s); {C:\Documents and Settings\wy}
end;