Hallo,
ich bin gerade total verwirrt.
Ich hatte mal eine Installation ausgeführt bei der leider der Windows-Installer Dateien entpackte und diese auf meiner externen Festplatte in einen Ornder zwischenparkte.
Soweit so gut, mein Problem war, dass ich diesen Ordner nicht mehr löschen konnte.
Mein Vista sagte, ich hätte nicht die Berechtigungen diesen zu löschen (trotz Admin-Rechten und ausgeschalteter Benutzerkontensteuerung oder wie das Ding heisst).
Letztens hatte ich diese Festplatte bei einem Freund und hab hatte ihm gebeten zu versuchen diesen Ordner zu löschen.
Er hat Win XP Pro. Auch Win XP hat sich geweigert. Er hatte dann noch ein Tune Up-Programm mit dem man Daten löschen kann.
Das hat dann soweit auch geklappt, bis auf einen Unterordner und dessen Dateien. Diese konnten nicht gelöscht werden und deswegen auch nicht der eigentliche Ordner.
Nun hatte ich zwar weniger Dateien, aber dieser Ordner war noch da.
Jetzt dacht ich mir ich könne ja mal probieren, diesen Ordner mit einem Code aus Delphi raus zu löschen.
Bei
dsdt.info hab ich diesen Code gefunden:
Delphi-Quellcode:
uses ShellAPI;
function DeleteFile(const AFile: string): boolean;
var
sh: SHFileOpStruct;
begin
ZeroMemory(@sh, sizeof(sh));
with sh do
begin
Wnd := Application.Handle;
wFunc := fo_Delete;
pFrom := PChar(AFile +#0);
fFlags := fof_Silent or fof_NoConfirmation;
end;
result := SHFileOperation(sh) = 0;
end;
Da dieser Code die ShellAPI verwendet, dacht ich mir es könne ja nicht funktionieren, da ja Windows mit die Finger im Spiel hat.
ABER: Ich kann es nicht fassen. Ich bekam ein true von dieser Funktion und bei einem Blick auf die Festplatte: Der Ordner ist verschwunden, weg, away, verflogen,... - einfach nicht mehr da.
Nun wieder zu meiner Verwirrtheit:
Wieso konnt ich den mit dem oberen Code löschen, aber über Windoofs nicht?