Also einen Tree, welcher mit allen Partitionen gefüllt ist, selbst die nicht gemounteten
und wo auch die "defekten" Dateien mit angezeigt werden, war ja noch leicht.
Aber dieses NtDeleteFile will einfach nicht löschen
Delphi-Quellcode:
Procedure TForm1.delete1Click(Sender: TObject);
Var S2: WideString;
S: UNICODE_STRING;
O: OBJECT_ATTRIBUTES;
E: NTSTATUS;
Begin
If Tree1.GetFirstSelected = nil Then Exit;
S2 := GetFullName(Tree1.GetFirstSelected);
S.Length := Length(S2) * 2;
S.MaximumLength := MAX_PATH * 2;
S.Buffer := PWideChar(S2);
O.Length := SizeOf(OBJECT_ATTRIBUTES);
O.RootDirectory := 0;
O.ObjectName := @S;
O.Attributes := 0;
O.SecurityDescriptor := nil;
O.SecurityQualityOfService := nil;
E := NtDeleteFile(O);
ShowMessage(SysErrorMessage(E and $0FFFFFFF));
End;
S bzw. S2 enthalten z.B. einen String wie
S2 := '\\?\Volume{7172b2a6-ae53-11dd-853d-806d6172696f}\Da'#0'ài_Suchen.exe'
und das nicht gelöscht wird, liegt nicht an der #0, denn es geht bei allen Dateien nicht.
auch sowas mag die Funktion nicht
Delphi-Quellcode:
S2 := '\\.\S:\Da'#0'ài_Suchen.exe'
S2 := 'S:\Da'#0'ài_Suchen.exe'
die aktuelle Fehlermeldung ist (mit dem obrigem Code)
Zitat:
Windows kann den Netzwerkpfad nicht finden. Überprüfen Sie, dass der Netzwerkpfad korrekt ist und dass der Zielcomputer nicht ausgelastet oder ausgeschaltet ist. Falls dies nicht der Fall ist, sollten Sie sich an den Netzwerkadministrator wenden
es gab auch schon Andere ... weiß jetzt nur nimmer wie die genau lauteten