Nettoyeur de fichiers

Description

Petit programme bateau mais efficace permettant d'effacer des fichiers dans des repertoires ciblés (au choix) dans vos disque dur et utilisant comme critère de selection la taille et la date. Je vient de le faire là à mon entreprise et si je le poste c'est pour que d'autres puissent s'en servire mais aussi pour qu'on me dise ce que je pourrai améliorer ou ajouter pour le rendre plus efficace ou complet !

Merci.

Source / Exemple :


La fonction recursive pour ceux qui ont le fleme de D/L le zip :)

procedure TMainPage.ScanFichiers( NomDossier : string ; subFolder : boolean );
var
    DateOk   : Boolean;
    TailleOk : Boolean;
    hFind    : TSearchRec;
begin

    NomDossier := slach(NomDossier);

    if FindFirst( NomDossier + '*.*', FaAnyFile, hFind ) = 0 then
    begin
    
        repeat

            if (hFind.Name <> '.') and (hFind.Name <> '..') then
            begin

                if ( hFind.Attr and faDirectory ) <> faDirectory then  { c'est un fichier = traitment }
                begin

                    { Compare Date fichier }
                    case RadioDate.ItemIndex of
                        0: begin
                               if DaysBetween( Now, FileDateToDateTime(hFind.Time) ) > StrToInt(TxtHighDate.Text) then DateOk := True Else DateOk := False;
                           end;
                        1: begin
                               if DaysBetween( Now, FileDateToDateTime(hFind.Time) ) < StrToInt(TxtLowDate.Text) then DateOk := True Else DateOk := False;
                           end;
                        2: DateOK := True;
                    end;

                    { Compare Taille fichier }
                    case RadioTaille.ItemIndex  of
                        0: begin
                             if Int( hFind.Size div 1000 ) > StrToInt(TxtHighSize.Text) then TailleOK := True Else TailleOK := False;
                           end;
                        1: begin
                             if Int( hFind.Size div 1000 ) < StrToInt(TxtLowSize.Text) then TailleOK := True Else TailleOK := False;
                           end;
                        2: TailleOk := True;
                    end;

                     { Si condition reunis, efface le fichier }
                     if DateOK and TailleOK then
                     begin

                        Grid.Cells[0, Grid.RowCount-1] := ( NomDossier + hFind.Name );
                        Grid.Cells[1, Grid.RowCount-1] := IntToStr( (hFind.Size div 1000) );
                        Grid.Cells[2, Grid.RowCount-1] := DateToStr( FileDateToDateTime( hFind.Time ) );
                        if CheckSimu.Checked = True then
                            Grid.Cells[3, Grid.RowCount-1] := 'Simulation'
                        else begin
                            if DeleteFile( NomDossier + hFind.Name ) then
                                Grid.Cells[3, Grid.RowCount-1] := 'Effacer'
                            else
                                Grid.Cells[3, Grid.RowCount-1] := 'Erreur';
                        end;
                        Grid.RowCount := Grid.RowCount + 1;

                     end;
                end else begin { c'est un dossier : on va voir dedans si subFolder = True }

                    if subFolder = True then ScanFichiers( (slach(NomDossier) + hFind.Name), subFolder );

                end;
            end;
            
        until FindNext(hFind) <> 0;

        FindClose(hFind);
        Application.ProcessMessages

    end;

end;

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.