在 Windows Vista+ 系統中,應用程式資料目錄通常位於 C:\Users\{User}\AppData\Roaming。Delphi 提供三種等效獲取方式,推薦使用跨平台的 GetHomePath。
uses System.IOUtils;
procedure TForm1.FormCreate(Sender: TObject);
var S: string;
begin
{ 三種方法結果一致: C:\Users\wy\AppData\Roaming }
S := GetHomePath; { System.SysUtils,跨平台、簡潔,Windows 下內部呼叫 SHGetFolderPath }
S := TPath.GetHomePath; { System.IOUtils,現代路徑 API }
S := GetEnvironmentVariable('APPDATA'); { 傳統方式,僅限 Windows }
end;
| 方法 | 單元 | 跨平台 | 推薦度 | 備註 |
|---|---|---|---|---|
GetHomePath | System.SysUtils | ✅ 是 | ⭐⭐⭐⭐⭐ | 官方推薦,自動處理平台差異 |
TPath.GetHomePath | System.IOUtils | ✅ 是 | ⭐⭐⭐⭐ | 現代路徑 API,功能更豐富 |
GetEnvironmentVariable('APPDATA') | System.SysUtils | ❌ 否 | ⭐⭐ | 僅限 Windows,舊碼遷移用 |
最佳實踐:新專案一律使用 GetHomePath 或 TPath.GetHomePath,配合 TPath.Combine 建立完整路徑,確保跨平台相容性與程式碼可讀性。