Kann es sein, dass diese Variante nicht unter Windows Vista funktioniert?
Speziell interessiert mich die Abfrage, ob z.B. in den Programmeordner geschrieben werden kann.
Hier einmal die Kurzvariante zum Testen:
Delphi-Quellcode:
var
F : TextFile;
tmp : integer;
begin
try
AssignFile(F, Ordner + Dateiname);
{$I-}
ReWrite(F);
{$I+}
tmp := ioresult;
if tmp = 0 then
begin // erfolgreich
showmessage('ioresult='+inttostr(tmp));
Result := true;
CloseFile(F);
end
else
begin // nicht erfolgreich
showmessage('peng! ioresult='+inttostr(tmp));
Showmessage('In den angegebenen Ordner kann nicht geschrieben werden!');
Result := false;
end;
finally
If FileExists(Ordner + Dateiname) then
DeleteFile(Ordner + Dateiname);
end;
end;
Bei den gewohnten Verzeichnissen, wie CD-Laufwerke, nicht beschreibbare Medien funktioniert es. Nur nicht unter Vista, wenn man als Nicht-Admin versucht ins Programmverzeichnis zu schreiben. Die angegebene Datei ist vor dem CloseFile() auch nicht vorhanden, obwohl ioresult=0 zurück gegeben wurde...
Ich verzweifle schon fast...