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 :

Time de dépôt d'un fichier


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut Time de dépôt d'un fichier
    Bonjour à tous,

    Je développe un service qui traite les fichiers selon leur moment d'arrivées dans différents hotfolders. Jusque là, pas de soucis.

    Le soucis est à l'initialisation du service, lorsque je dois construire ma liste d'attente comprenant les fichiers se trouvant déjà dans les hotfolders définis. Est-ce possible de retrouver le moment auquel un fichier a été déposé dans un certain folder ? Cela me permettrait donc de traiter les fichiers en FIFO, même si le service n'était pas démarré lors du dépôt.

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    system.io.directoryinfo.getfiles(path) retourne des fileinfo plutot que des filename
    sur un fileinfo on doit avoir la date de création (date d'arrivée dans le dossier)
    et la date de dernière modification (lastwritetime) qui correspond à la dernière modification même sur un autre pc

    après avec du linq tu peux faire un order by pour récupérer les nom de fichier dans l'ordre

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut
    Salut Pol63,

    Merci pour ta réponse. Cela fonctionne très bien, j'utilisais d'ailleurs File.GetCreationtime() pour accéder à ces informations, et ce que tu me donnes est plus simple et court.

    Cependant, j'ai l'impression que si j'y déplace un fichier qui s'y est déjà trouvé par le passé, le CreationTime n'est pas mis à jour... Est-ce un comportement connu? Y-a-t-il des façons de contourner ce soucis?

    Encore merci pour ton aide.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    oui c'est pas super pratique les dates sur les fichiers, la date de création ne se modifie pas à priori

    le mieux serait alors de se baser sur lastwritetime et que ton processus qui t'amène les fichiers écrive le fichier s'il faut le mettre en bout de file

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut
    Le soucis est que ce sont des applications tierces (ou des utilisateurs humains) qui déposent ces fichiers... Le problème devrait arriver assez rarement étant donné que ces applications "cracheront" les fichiers dans mes hotfolders (et donc avec un CreationTime relativement correct), mais j'aurais aimé gérer les cas où cela se passe moins bien.

    Pas trop grave, c'est un cas relativement isolé et je ferai en sorte de le gérer au mieux.

    En tout cas, merci pour ton aide ! Je noterai le topic en résolu un peu plus tard, au cas où quelqu'un passerait par ici avec une idée venue du ciel

  6. #6
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Bonjour.

    Une chose qui pourrait aider : les alternate data stream. C'est une fonctionnalité de NTFS qui permet d'attacher un fichier masqué à un fichier ou un dossier sans modifier ce dernier. Si le fichier ou le dossier est déplacé, notre fichier attaché est déplacé avec lui.
    La procédure serait alors la suivante :
    * A t-on marqué le fichier ? Non, dans ce cas on assigne la date actuelle (ou la date de création) et on la stocke dans un fichier associé.
    * Si le fichier est marqué, on relève sa date de dépôt depuis l'ADS.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut
    Salut DonQuiche,

    Ca ne m'aide pas dans ce cas-ci, étant donné que je ne détecte pas directement l'arrivée de ces fichiers (et que je n'ai aucun contrôle sur ceux-ci ni sur les applications qui me les envoient).

    Par contre, je ne connaissais pas du tout et c'est super intéressant !

    Merci.

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    il y a le filesystemwatcher pour surveiller l'arrivée

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut
    Oui Pol63, mais comme je l'ai dit, le problème n'a lieu que lorsque mon service ne tourne pas. Et donc mes FileSystemWatcher ne sont pas activés.

    Merci pour l'aide ! Je "set" en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/09/2014, 13h43
  2. Dépôt de fichiers sur serveur
    Par thomas2929 dans le forum JDBC
    Réponses: 1
    Dernier message: 04/07/2008, 15h17
  3. Accès au disque dur : fichiers de conf., dépôt de fichiers
    Par 84mickael dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 08/04/2008, 14h40
  4. Réponses: 15
    Dernier message: 01/09/2005, 10h07
  5. [Kylix] Kylix 3 C++ OE et fichier time.h
    Par Max13 dans le forum EDI
    Réponses: 7
    Dernier message: 30/10/2002, 14h55

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