Что делает Shfileoperation, когда коррекция заполнена?

StackOverflow https://stackoverflow.com/questions/1911907

  •  19-09-2019
  •  | 
  •  

Вопрос

Я использую эту процедуру:

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;

Что произойдет, если корзина будет заполнена, вернет ли он ложный или удаляя файл навсегда?

Любая помощь будет оценена.

Это было полезно?

Решение

The best way to find out is to actually do it. Made my recycle bin be minimum 1 percent of drive. Created a bunch of large files and used your function to move them to recycle bin.

What I am finding out (on XP anyways) is that the function always moves it to the recycle bin; but deletes permanently the oldest deleted file. So it appears when the recycle bin fills up it employs a "first in - first out" type approach to decide which file to boot out.

I was not able to get the function to return false. Perhaps creating a file too large for the allocated recycle bin do this.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top