偶然從 SysUtils 裡發現了幾個路徑相關的函數, 以前沒見過, 可能是 2010 新增的:
GetLocaleDirectory();
GetLocaleFile();
LocaleDirectoryExists();
LocaleFileExists();
應用測試:
uses IOUtils;
procedure TForm1.FormCreate(Sender: TObject);
var
p,f: string;
b: Boolean;
begin
{設置與獲取當前路徑}
SetCurrentDir('C:\Temp\');
ShowMessage(GetCurrentDir); { C:\Temp }
{獲取當前目錄下子目錄的全路徑}
p := GetLocaleDirectory('ABC');
ShowMessage(p); { C:\Temp\ABC\ }
{獲取當前目錄下文件的全路徑}
f := GetLocaleFile('X.txt');
ShowMessage(f); { C:\Temp\X.txt }
f := GetLocaleFile('ABC\X.txt');
ShowMessage(f); { C:\Temp\ABC\X.txt }
{IOUtils 下的 TPath 也有類似功能}
f := TPath.GetFullPath('X.txt');
ShowMessage(f); { C:\Temp\X.txt }
f := TPath.GetFullPath('ABC\X.txt');
ShowMessage(f); { C:\Temp\ABC\X.txt }
{判斷當前文件夾下的文件或子文件夾是否存在}
b := LocaleDirectoryExists('ABC'); //這相當於: DirectoryExists(GetCurrentDir + '\ABC');
b := LocaleFileExists('X.txt'); //這相當於: FileExists(GetCurrentDir + '\X.txt');
end;