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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top