以文本方式查看主题

-  搭建论坛  (http://bbs.diylsoft.com:8118/starforum/index.asp)
--  用户咨询  (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=4)
----  [求助]关于路径的设置  (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=4&id=29879)

--  作者:zhongjian
--  发布时间:2010-1-8 21:36:23
--  [求助]关于路径的设置
 《搭建之星》文件清理构件是否支持相对路径如设置目录为:“%systemdrive%”等目录格式。
--  作者:adm386
--  发布时间:2010-1-8 22:41:57
--  

以前曾用 GetWindowsDirectory、GetSystemDirectory、GetTempPath 等函数获取系统常用文件夹;

也用过 SHGetSpecialFolderLocation、SHGetPathFromIDList 函数获取过更多常用路径;

但这都不如用 GetEnvironmentVariable 获取系统变量来得快.

//譬如 %WINDIR% 是表示系统目录的系统变量, 可以这样获取:
var
  s: string;
begin
  s := GetEnvironmentVariable(\'WINDIR\');
  ShowMessage(s); {C:\\WINDOWS}
			end;


%WINDIR%                 {系统目录 - C:\\WINDOWS}
%SYSTEMROOT%             {系统目录 - C:\\WINDOWS}
%SYSTEMDRIVE%            {系统根目录 - C:}
%HOMEDRIVE%              {当前用户根目录 - C:}
%USERPROFILE%            {当前用户目录 - C:\\Documents and Settings\\wy}
%HOMEPATH%               {当前用户路径 - \\Documents and Settings\\wy}
%TMP%                    {当前用户临时文件夹 - C:\\DOCUME~1\\wy\\LOCALS~1\\Temp}
%TEMP%                   {当前用户临时文件夹 - C:\\DOCUME~1\\wy\\LOCALS~1\\Temp}
%APPDATA%                {当前用户数据文件夹 - C:\\Documents and Settings\\wy\\Application Data}
%PROGRAMFILES%           {程序默认安装目录 - C:\\Program Files}
%COMMONPROGRAMFILES%     {文件通用目录 - C:\\Program Files\\Common Files}
%USERNAME%               {当前用户名 - wy}
%ALLUSERSPROFILE%        {所有用户文件目录 - C:\\Documents and Settings\\All Users}
%OS%                     {操作系统名 - Windows_NT}
%COMPUTERNAME%           {计算机名 - IBM-B63851E95C9}
%NUMBER_OF_PROCESSORS%   {处理器个数 - 1}
%PROCESSOR_ARCHITECTURE% {处理器芯片架构 - x86}
%PROCESSOR_LEVEL%        {处理器型号 - 6}
%PROCESSOR_REVISION%     {处理器修订号 - 0905}
%USERDOMAIN%             {包含用户帐号的域 - IBM-B63851E95C9}
%COMSPEC%                {C:\\WINDOWS\\system32\\cmd.exe}

%PATHEXT% {执行文件类型 - .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;

--  作者:FSJM
--  发布时间:2010-1-9 11:11:19
--  
可参考我们新提供的实例 。。。http://web.diylsoft.com/?ipe=./union/download/file&no=179
--  作者:x123992009
--  发布时间:2010-1-14 19:11:11
--  
我问了这个问题这么久..今天总算知道这么得到这些数据了..  感动中..........收藏