Helpt het als je deze functie loslaat op je LocalPath?
Delphi Code:
function ExpandEnvVarInFilename(const S: String): String;
var
p1, p2: SizeInt;
Sub, EnvS: String;
begin
Result := S;
p1 := Pos('%',S);
if (p1 = 0) then Exit;
p2 := PosEx('%',S,p1+1);
if (p2 = 0) then Exit;
Sub := Copy(S,p1+1,p2-p1-1);
EnvS := GetEnvironmentVariable(Sub);
Result := StringReplace(Result, '%'+Sub+'%', EnvS, []);
end;
SetCurrentDir is niet threadsafe.
Persoonlijk zou ik altijd proberen een "fully qualified filename" door te geven aan bestandsfuncties, zeker in dit soort situaties.
Daarmee vermijd je iedere vorm van ambiguiteit.
PS. Ik heb geen onedrive dus ik kan niet testen of dit daarmee ook werkt (met tfilestream), met "simpele" environmentvariabelen als %public% werkt dit prima.
Bart
Bookmarks