Question

J'utilise cette procédure:

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;

Que se passera-t-il si le bac de recyclage est plein, renvoie-t-il False ou supprime le fichier de façon permanente?

Toute aide serait appréciée.

Était-ce utile?

La solution

La meilleure façon de le découvrir est de le faire. Fait que mon bac de recyclage soit au moins 1% de l'entraînement. Créé un tas de fichiers volumineux et utilisé votre fonction pour les déplacer vers le recyclage du bac.

Ce que je découvre (sur XP de toute façon), c'est que la fonction la déplace toujours vers le bac de recyclage; mais supprime définitivement le plus ancien fichier supprimé. Il apparaît donc lorsque le bac de recyclage se remplit, il utilise une approche de type "First in - First Out" pour décider du fichier à démarrer.

Je n'ai pas pu obtenir la fonction pour retourner faux. Peut-être que la création d'un fichier trop grand pour le bac de recyclage alloué le fait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top