Pregunta

Yo uso este procedimiento:

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;

¿Qué pasará si el contenedor de reciclaje está lleno, devuelve falso o elimina el archivo de forma permanente?

Cualquier ayuda sería apreciada.

¿Fue útil?

Solución

La mejor manera de averiguarlo es hacerlo realmente. Hizo que mi contenedor de reciclaje fuera mínimo del 1 por ciento de la unidad. Creó un montón de archivos grandes y usó su función para moverlos para reciclar Bin.

Lo que estoy descubriendo (en XP de todos modos) es que la función siempre la mueve al contenedor de reciclaje; pero elimina permanentemente el archivo eliminado más antiguo. Por lo tanto, aparece cuando el contenedor de reciclaje se llena, emplea un enfoque de tipo "Primero adentro - First Out" para decidir qué archivo arrancar.

No pude obtener la función para devolver falso. Quizás la creación de un archivo demasiado grande para el contenedor de reciclaje asignado haga esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top