IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Suppression fichiers sur date d'accès


Sujet :

C#

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Par défaut Suppression fichiers sur date d'accès
    Bonjour,

    Débutant, je cherche une ame charitable pour m'aider à faire un petit exe qui supprimerait en ligne de commande des fichiers dont la date d'accès est supérieur à un nbr de jours donnés.

    J'ai trouvé un petit progr (delold) qui ferait exactement ça mais il ne semble pas fonctionner en mode ligne de commande (http://www.savilltech.com/delold/)

    Merci d'avance pour vos réponses

  2. #2
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Citation Envoyé par davelop Voir le message
    Bonjour,

    Débutant, je cherche une ame charitable pour m'aider à faire un petit exe qui supprimerait en ligne de commande des fichiers dont la date d'accès est supérieur à un nbr de jours donnés.
    Salut, que voudrais-tu dire par "...ligne de commande"?
    Sinon il existe plein de classes sur les File pour obtenir la date d'accès et faire ce que tu veux avec.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Par défaut
    par "mode ligne de commande" je veux dire par là sans interface graphique.


    En fait, j'ai besoin de lancer automatiquement périodiquement un batch qui supprimera tous les fichiers dont la date d'accès est supérieur à un certain nombre de jours donnés

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    un petit service windows pourrait-il faire??...

  5. #5
    Membre confirmé Avatar de Apocalyps
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Août 2006
    Messages : 83
    Par défaut Un simple petit Exe
    Salut,

    Ok, en gros tu veux un fichier .exe que tu lancera avec ton fichier .bat donnant par exemple :
    lesupprimeur.exe "deldate<10/10/2007"

    J'ai vu juste ?

    Par contre, ça doit supprimer quels fichier, dans quel dossier ?

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Par défaut
    Tout à fait Apocalyps

    Un batch qui lancera un truc du genre
    lesupprimeur.exe /j:15 /s /p:"d:\test\*.*"

    l'option /j : donnerais le nom de jours d'ancienneté par rapport à la date d'accès du fichier (important

    l'option /s : pour le rechercher dans les sous dossier

    l'option /p : pour le chemin et le masque sur les noms de fichiers

    Il existe l'exe Forfiles en natif sur Windows Server 2003 qui fait ça très bien mais sur la date de modification des fichiers et pas sur la date d'accès.

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Par défaut
    Bon pour ceux que ça interesserait j'ai trouvé et adpaté ce code qui fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
     
    namespace DeleteOldFiles
    {
    class Program
    {
    static void Main(string[] args)
    {
    int n;
    bool bTestMode;
    bool bRecurse;
     
    bTestMode = false;
    bRecurse = true;
     
    if (args.Length == 0
    {
    Console.WriteLine("Usage: purge [chemin] [nb de jours d'anciennete]");
    }
    else
    {
    foreach (string s in args)
    {
    if (s.ToLower() == "really")
    bTestMode = false;
    if (s.ToLower() == "recurse")
    bRecurse = true;
    }
    Console.WriteLine("SUPPRESSION DES FICHIERS DANS - " + args[0] + " - QUI SONT PLUS VIEUX QUE " + args[1] + " JOURS.");
    Console.WriteLine(bTestMode?" ** Mode Test - Aucun fichier ne sera efface":"");
    Console.WriteLine(bRecurse?" ** Options sous-dossiers active.":"");
     
    DeleteOldFiles.Program.ProcessFolder(args[0], Convert.ToInt32(args[1]), bTestMode);
    }
    }
     
    private static void ProcessFolder(string sFolder, int nDays, bool bTestMode)
    {
    FileSystemInfo[] yFI;
    DirectoryInfo DI;
    DI = null;
    yFI = null;
     
    try
    {
    DI = new DirectoryInfo(sFolder);
    yFI = DI.GetFileSystemInfos();
    }
    catch (Exception ex)
    {
    Console.Write("\r\n ERREUR: Chemin non trouve : " + sFolder + "\r\n Msg: " + ex.Message);
    return;
    }
     
    foreach (FileSystemInfo FIL in yFI)
    {
    if (FIL.Attributes.CompareTo(FileAttributes.Directory) == 0 )
    ProcessFolder(FIL.FullName, nDays, bTestMode);
    else
    {
    int nAge;
    nAge = ((TimeSpan)(DateTime.Today - Convert.ToDateTime(FIL.LastAccessTime))).Days;
     
    if (nAge > nDays)
    {
    Console.WriteLine("\r\n==> Fichier: " + FIL.FullName);
    Console.WriteLine("\r\n==> Date dernier acces au fichier: " + FIL.LastAccessTime);
    Console.WriteLine("\r\n==> ce qui fait " + nAge.ToString() + " jours sans access --> Suppression.");
    if (bTestMode)
    Console.WriteLine("MODE TEST, Pas de suppression de fichiers.");
    else
    {
    Console.WriteLine(" File has been deleted…");
    FIL.Delete();
    }
    }
    }
    }
    }
    }
    }
    Par contre quelqu'un pourrait m'aider à le modifier dans le cas où un fichier n'est pas accessible, que le programme ne se bloque pas ?

    Merci d'avance

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2003
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 207
    Par défaut
    Pas beaucoup d'aide ici

  9. #9
    Membre confirmé Avatar de Apocalyps
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Août 2006
    Messages : 83
    Par défaut En C#
    Pour vérifier si le fichier fonctionne ou pas, je te conseille de faire un Try-Catch qui vérifira la possibilité d'accès au fichier.

    Good Luck

Discussions similaires

  1. Suppression fichiers sur Windows ce
    Par nordinen dans le forum Windev Mobile
    Réponses: 0
    Dernier message: 02/02/2014, 14h03
  2. [XL-2007] Suppression Fichier sur FTP
    Par Duddy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2011, 20h59
  3. Suppression fichier sur le serveur après download
    Par mfrai02 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/02/2010, 15h24
  4. suppression d'un fichier par date d'accès
    Par nokia6680 dans le forum VBScript
    Réponses: 4
    Dernier message: 02/11/2006, 10h48
  5. [C#] [FTP] Envoi et suppression fichier sur ftp NON ANONYME!
    Par djsbens dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/03/2005, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo