Bonjour,
j'ai un soucis et je n'arrive pas a comprendre ce que je fais mal. Je suis nouveau en C#, ca fait 3 heures : que je cherche une soluce mais trouvé personne qui voulait faire exactement comme moi.
Ce que je veux faire c'est faire un filewatcher qui vérifie la création de nouveau fichier dat dans un dossier et qui qd il en trouve un, lance l'import.
J'ai écris le code que je vais coller plus bas mais en fait le prog se déroule bien jusqu'a la ligne "this._fileSystemWatcher.Created += new FileSystemEventHandler(OnCreate);". La il ne passe jamais dans OnCreate, il passe la ligne et c tout.
Je précise que le code passe la compilation sans erreur.
Je n'ai pas encore fais mais je voudrais aussi que le filewatcher continue de tourner après cet import, je sais pas encore comment je vais faire, si vous avez une piste...c cool
Merci a tous en tout cas.
Arnaud
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 //appel de la classe : FileWatcher fw = new FileWatcher(); fw.Start(); //classe : public class FileWatcher { private FileSystemWatcher _fileSystemWatcher; private Form1 _form; public void Start() { _form = new Form1(); string dirInbox = "C:\\temp\\"; if (System.IO.Directory.Exists(dirInbox)) { try { this._fileSystemWatcher = new FileSystemWatcher(dirInbox); } catch(IOException e) { _form.ShowInTextBox("The file watcher cannot scan folder : " + dirInbox + "------> " + e.Message); } } else { _form.ShowInTextBox("The folder to scan doesn't exist : " + dirInbox); } this._fileSystemWatcher.NotifyFilter = NotifyFilters.FileName; this._fileSystemWatcher.Filter = "*.dat"; this._fileSystemWatcher.IncludeSubdirectories = false; this._fileSystemWatcher.EnableRaisingEvents = true; WaitForChangedResult waitResult =this._fileSystemWatcher.WaitForChanged(WatcherChangeTypes.All); if( waitResult.ChangeType == WatcherChangeTypes.Created) { this._fileSystemWatcher.Created += new FileSystemEventHandler(OnCreate); this._fileSystemWatcher.EnableRaisingEvents = true; } } public void Stop() { if (this._fileSystemWatcher!=null) { this._fileSystemWatcher.EnableRaisingEvents = false; this._fileSystemWatcher.Created -= new FileSystemEventHandler(OnCreate); } } public void OnCreate(Object o, FileSystemEventArgs ea) { lock(this) { try { Import launchImport = new Import(); launchImport.onFileCreatedProcess(ea.Name.ToString()); } catch (Exception exc) { _form.ShowInTextBox("Problem on Create : " + ea.Name.ToString() + "--------->" + exc.Message); } } } }
Partager