Ich bin ein wenig erstaunt, wieso das noch niemandem aufgefallen ist:
Delphi-Quellcode:
procedure CreateHiddenFolder(APath: WideString);
begin
if not DirectoryExists(APath) and ForceDirectories(APath)then
begin
SetFileAttributes(PAnsiChar(APath),FILE_ATTRIBUTE_HIDDEN);
end;
end;
Dort wird ein WideString übergeben und direkt zu einem AnsiString Pointer gecasted. Das ergibt einen AnsiString der nur den ersten Buchstaben des Pfads enthält (weil das zweite Byte bereits 0 ist -
Unicode sei Dank). Also entweder Du übergibst dort direkt einen AnsiString, rufst die Wide Funktion auf oder aber erweiterst Deinen Cast auf PAnsiChar(AnsiString(APath)).
Hättest Du wie von Luckie bereits kritisiet übrigens direkt Fehlerbehandlung eingebaut, wäre Dir der GetLastError Wert für "File not found" sicher selbst aufgefallen.