Was macht Shfileoperation, wenn der Recycle -Behälter voll ist?
-
19-09-2019 - |
Frage
Ich benutze dieses Verfahren:
function MoveToRecycle(sFileName: widestring): Boolean;
var
fos: TSHFileOpStructW;
begin
FillChar(fos, SizeOf(fos), 0);
with fos do
begin
wnd := 0;
wFunc := FO_DELETE;
pFrom := PWideChar(sFileName + #0 + #0);
pTo := #0 + #0;
fFlags := FOF_FILESONLY or FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;
end;
Result := (ShFileOperationW(fos) = 0);
end;
Was wird passieren, wenn der Recycle -Bin voll ist, gibt er falsche oder lösche Datei dauerhaft zurück?
Jede Hilfe wäre geschätzt.
Lösung
Der beste Weg, um herauszufinden, ist es tatsächlich zu tun. Ich habe meinen Recycle -Bin mindestens 1 Prozent des Antriebs sein. Erstellte eine Reihe großer Dateien und benutzte Ihre Funktion, um sie auf den Bin zurückzuschieben.
Was ich (sowieso auf XP) herausfinde, ist, dass die Funktion sie immer in den Recyclingbehälter bewegt. aber löscht dauerhaft die älteste gelöschte Datei. Wenn der Recycle -Behälter ausfüllt, wird ein "First In -First Out" -Typansatz verwendet, um zu entscheiden, welche Datei ausgelöst werden soll.
Ich konnte die Funktion nicht dazu bringen, false zurückzugeben. Vielleicht tun Sie eine Datei, die für den zugewiesenen Recycle -Bin zu groß ist, dies.