myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Basistechnologien und allgemeine .NET-Klassen » FileSystemWatcher change wird 2x ausgeführt
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

geschlossen (weitere Infos)
Zum Ende der Seite springen  

FileSystemWatcher change wird 2x ausgeführt

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
kantaki
myCSharp.de-Mitglied

Dabei seit: 14.11.2011
Beiträge: 21


kantaki ist offline

FileSystemWatcher change wird 2x ausgeführt

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

hallo,

ich möchte eine txt einlesen wenn diese geändert wird. Allerdings wird das event "fileWatcher_Changed" zweimal ausgeführt.
dh
wenn ich eine txt habe die wie folgt aussieht.

C#-Code:
1
2
3

und diese speichere, also ändere, bekomme ich als output
123123

irgenteine idee wie ich das vermeiden kann ?

C#-Code:
    private void fileWatcher_Changed(object sender, System.IO.FileSystemEventArgs e)
        {
            if (System.IO.File.Exists(e.FullPath) == true)
            {
                 FileManager fm = new FileManager();
                 fm.parse(e.FullPath);
                 foreach (string a in fm.handHistory)
                 {
                     txtLog.Text += a;
                 }


            }
        }

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von kantaki am 23.02.2012 22:12.

Neuer Beitrag 23.02.2012 22:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
talla talla ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3214.jpg


Dabei seit: 20.07.2003
Beiträge: 6.862
Entwicklungsumgebung: VS 2010
Herkunft: Esslingen


talla ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

du musst beachten was in der  Doku steht:

Zitat:
Common file system operations might raise more than one event. For example, when a file is moved from one directory to another, several OnChanged and some OnCreated and OnDeleted events might be raised. Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected by FileSystemWatcher.

Gleich danach wird auch nen Tipp gegeben wie man die vielen Events einschränken kann:

Zitat:
Use NotifyFilter to restrict the number of notifications raised when this event is handled.

Deshalb immer schön Doku lesen, wie in  [Hinweis] Wie poste ich richtig? Punkt 1 1 von unseren Regeln verlangt.
Neuer Beitrag 23.02.2012 22:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
kantaki
myCSharp.de-Mitglied

Dabei seit: 14.11.2011
Beiträge: 21

Themenstarter Thema begonnen von kantaki

kantaki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ok ich habe das komplett überlesen :(

jetzt weiß ich wenigstens warum das event mehrfach ausgeführt wurde.


trotzdem bekomme ich aus irgenteinem grund eine argument exception. Ich habe es genauso verwendet wie es in der doku beschrieben wurde.

C#-Code:
private void Start_Click(object sender, EventArgs e)
        {
            if (FolderPath.Text != "")
            {
                try
                {
                    fileWatcher.NotifyFilter = NotifyFilters.LastWrite;
                    fileWatcher.EnableRaisingEvents = true;
                }
                catch (ArgumentException p)
                {
                    txtLog.Text += "Warum eine Exeption ?";
                }
            }

        }
Neuer Beitrag 23.02.2012 22:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.939
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Schau Dir die Exception genau an; dann wirst Du wissen woran es liegt.
Code zu zeigen, aber die Exception weder genau zu lesen noch anzugeben, bringt keinem weiter.

Ich bin sicher, wenn Du Dir die Exception mal anschaust, und Deinen Code im Debugger verfolgst, wirst Du selbst die Lösung finden.
Neuer Beitrag 23.02.2012 23:10 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 8 Jahre.
Der letzte Beitrag ist älter als 8 Jahre.
geschlossen (weitere Infos)


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 04.07.2020 23:41