Domanda

Uso questa procedura:

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;

Cosa succederà se il cestino è pieno, restituisce in modo permanente il file falso o elimina in modo permanente?

Qualsiasi aiuto sarebbe apprezzato.

È stato utile?

Soluzione

Il modo migliore per scoprirlo è effettivamente farlo. Ha reso il mio cestino per il riciclo minimo dell'1 percento dell'unità. Ho creato un sacco di file di grandi dimensioni e ha utilizzato la tua funzione per spostarli per riciclare il cestino.

Quello che sto scoprendo (su XP comunque) è che la funzione la sposta sempre nel cestino del riciclo; ma elimina permanentemente il file eliminato più antico. Quindi appare quando il bidone del riciclaggio riempie, impiega un approccio "primo in - primo" per decidere quale file avvia.

Non sono stato in grado di ottenere la funzione per restituire false. Forse la creazione di un file troppo grande per il cestino del riciclo allocato, fai questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top