以前曾用 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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2008-02-22 WinAPI: midiInAddBuffer - 向 MIDI 输入设备发送一个输入缓冲区
2008-02-22 WinAPI: midiOutGetErrorText - 根据错误号得到错误描述
2008-02-22 WinAPI: midiInGetErrorText - 根据错误号得到错误描述
2008-02-22 WinAPI: midiInMessage - 向 MIDI 输入设备发送一条消息
2008-02-22 WinAPI: midiOutMessage - 向 MIDI 输出设备发送一条消息
2008-02-22 WinAPI: midiOutLongMsg - 向输出设备发送一条系统专用的 MIDI 消息
2008-02-22 WinAPI: midiOutShortMsg - 向输出设备发送 MIDI 短消息