Récupérer l'heure lors de l'envoi d'un fichier texte

Signaler
-
 manlaurent -
Bonsoir,
je voudrai récupérer l'heure lors de l'envoi d'un fichier .txt, je m'explique. J'ai fait un petit programme avec visual studio 2010 qui contrôle une machine a mesurer , a la fin de la mesure la machine envoi un fichier en .txt dans un répertoire. Je veux juste récupéré l'heure a laquelle il a été envoyé et le mettre sur une feuille excel. Mon problème est comment contrôler la venue de ce fichier, j'ai vu qu'il existe "FileSystemWatcher ", mais je sais pas comment m'y prendre
Merci de votre aide





Dim oExcel As Excel.Application
Dim oWk As Workbook
oExcel = CreateObject("Excel.Application")
oExcel.Visible = False

oWk = oExcel.Workbooks.Open("C:\envoicharge\envoicharge.xlsx")


controlfichier = Form1.Programme3DTextBox.Text
controlfichier = controlfichier & ".txt
repertoire = ("c:")
chemincomplet = (repertoire & controlfichier)



'vérifie si le fichier existe, si oui je récupère l'heure

If System.IO.File.Exists(chemincomplet) Then

oWk.Sheets(1).range("H1048576").End(Excel.XlDirection.xlUp).Offset(1, 0) = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)






oWk.Save()
oWk.Close()
oExcel.Quit()
oWk = Nothing
oExcel = Nothing






Else
MsgBox(" Mesure pas terminée ", vbInformation, "INFORMATION")

oWk.SaveAs()
oWk.Close()
oExcel.Quit()
oWk = Nothing
oExcel = Nothing



End If

Me.Close()

6 réponses


Bonsoir,

j'ai vu qu'il existe "FileSystemWatcher ", mais je sais pas comment m'y prendre

Voici un exemple simple de l'utilisation d'un FileSystemwatcher :
Option Strict On
Public Class Form1
    Dim FSW As New IO.FileSystemWatcher
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        FSW.Path = "c:\test"
        AddHandler FSW.Created, AddressOf FichierCree
        FSW.EnableRaisingEvents = true
    End Sub
    Private Sub FichierCree(ByVal sender As Object, ByVal e As IO.FileSystemEventArgs)
       'recuperation des donnees du fichier avec FileInfo
       Dim monfichier As New IO.FileInfo(e.FullPath)
        MessageBox.Show("un fichier vient d'etre cree :" & monfichier.CreationTime.ToLongDateString)
    End Sub
End Class
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
quelqu'un pour m'expliquer les raisons des instructions dans la clause Else ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
super, merci beaucoup
Bonjour Banana32,

votre exemple est super ,et ça ma beaucoup aider. j'ai un dernier petit souci, quant je fais tourner le programme plusieurs fois, j'ai le message ("un fichier vient d'etre cree")qui revient a double, triple, etc..
La première fois ça joue, et ensuite il se multiplie par le nombre de fois que je le fais tourner.

merci d'avance.

S'il s'agit de ne plus prendre en compte la création d'autres fichiers, il te suffit de jouer sur le déclenchement des événements (ou pas) en renseignant la propriété EnableRaisingEvents n'importe où dans le code :
FSW.EnableRaisingEvents false 'ou true
Encore un grand merci, et bonne année.