Evenements changement de LastWriteTime

Signaler
Messages postés
7
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
19 mai 2004
-
Messages postés
7
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
19 mai 2004
-
Salut,

je voudrais déclencher une acquisition sur changement de LastWriteTime d'un fichier...

Par exemple:

public void mon_acquisition(object sender, System.EventArgs e)
{
//j'attend qu'un fichier du repertoire soit écrit
while(DirInfo.GetFiles()[1].LastWriteTime != DirInfo.LastWriteTime);

//et ensuite j'execute
....
....
....

}

Mon problème est que je voudrais utiliser un evenement pour ne pas surcharger le serveur en requetes...

ya til un truc du genre DirInfo.GetFiles()[1].LastWriteTime.IsChanged?

Merci de votre aide

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
avec System.IO.FileSystemWatcher

exemple de code :
private FileSystemWatcher FSWatcher;

public Form1()
{
InitializeComponent();

FSWatcher = new FileSystemWatcher();
FSWatcher.Changed += new FileSystemEventHandler(FSWatcher_Changed_Created_Deleted);
FSWatcher.Created += new FileSystemEventHandler(FSWatcher_Changed_Created_Deleted);
FSWatcher.Deleted += new FileSystemEventHandler(FSWatcher_Changed_Created_Deleted);
FSWatcher.Renamed += new RenamedEventHandler(FSWatcher_Renamed);
}


private void Form1_Load(object sender, System.EventArgs e)
{
FolderBrowserDialog dlg = new FolderBrowserDialog();
if ( dlg.ShowDialog() == DialogResult.OK)
{
FSWatcher.Path = dlg.SelectedPath;

// lancement de la surveillance
FSWatcher.EnableRaisingEvents = true;
}
else
Application.Exit();
}

private void FSWatcher_Changed_Created_Deleted(object sender, FileSystemEventArgs e)
{
StringBuilder tmp = new StringBuilder();
tmp.AppendFormat("{0} @ {1} : Action={2},    Nom={3} ({4})", 
DateTime.Now.ToShortDateString(), 
DateTime.Now.ToShortTimeString(),
e.ChangeType.ToString(),
e.Name,
e.FullPath);

listBox_Changements.Items.Add(tmp.ToString());
}

private void FSWatcher_Renamed(object sender, RenamedEventArgs e)
{
StringBuilder tmp = new StringBuilder();
tmp.AppendFormat("{0} @ {1} : Action=Renamed,    Ancien nom={2} ({3}),    Nouveau nom={4} ({5})",
DateTime.Now.ToShortDateString(), 
DateTime.Now.ToShortTimeString(),
e.OldName,
e.OldFullPath,
e.Name,
e.FullPath);

listBox_Changements.Items.Add(tmp.ToString());
}



Cocoricoooooooo !!!!
Messages postés
7
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
19 mai 2004

merci bien!