{$IOChecks} schaltet optionalen Prüfcode für die uralten Pascal-Dateifunktionen aus, also jene um AssignFile.
AssignFile/Append/Reset/Rewrite/Read/ReadLn/Write/WriteLn/Close/...
Delphi-Quellcode:
{$I+}
...
Write('blubb');
wird quasi zu
Delphi-Quellcode:
Write0UString(Output, 'blubb');
{$IFOPT I+}
if not IOTest then
Error;
{$ENDIF}
Ich wäre fast 100% der Mienung, dass IOResult in diesem Fall nicht das Ergebnis des intern verwendeten
CreateDir und vor allem nicht vom
CreateDirectory wiederspiegelt.
Wer sich den Quellcode von ForceDirectories ansieht, wird feststellen, dass dort keine dieser alten
API verwendet wird,
bei
Eingabe-Fehlern explizit eine
Exception ausgelößt wird (ja, genau dieses
''
)
und sonst jemand dringend den Rückgabewert dieser
Funktion prüfen sollte.
Delphi-Quellcode:
if not SysUtils.ForceDirectories( MeinString) then
RaiseLastOSError;
Delphi-Quellcode:
if not SysUtils.ForceDirectories( MeinString) then begin
TheError := GetLastError;
...
end;
Ein Therapeut entspricht 1024 Gigapeut.