Hallo Leute,
ich habe mal aus Langeweile ein Dateivergleichstool geschrieben.
Das soll Dateien vor und nach einer Aktion (zb. Installation) überprüfen und auswerten.
Bis heute ging alles perfekt. Bis ich auf die Suchfunktion der WinAPI hier im Forum gestoßen bin.
Ich habe 2 Dictionary´s.
Eines wird davor gefüllt und eins danach.
Jedoch sobald ich das zweite fülle und sich zb eine Datei ändert (hinzufügen, löschen etc) dann wird mir des erste wieder überschrieben. Ich hab keine Ahnung wo das sein soll.
Hab schon alles versucht, Haltepunkte gesetzt, aber konnte keinen Fehler finden.
Hier mal die Such-Methoden:
Die wird aufgerufen wenn ein Button geklickt wird zum ersten Scannen.
... und die hier wird aufgerufen, wenn der Benutzer die Anaylse stoppt.
Die "ForList" bleibt solange richtig mit den Daten gefüllt, bis zu den Punkt wo AfterList zugewießen wird.
Wenn ich es über meine normale Suchfunktion mache, dann funktioniert es.
Ich bin wirklich ratlos.
ich habe mal aus Langeweile ein Dateivergleichstool geschrieben.
Das soll Dateien vor und nach einer Aktion (zb. Installation) überprüfen und auswerten.
Bis heute ging alles perfekt. Bis ich auf die Suchfunktion der WinAPI hier im Forum gestoßen bin.
Ich habe 2 Dictionary´s.
Eines wird davor gefüllt und eins danach.
Jedoch sobald ich das zweite fülle und sich zb eine Datei ändert (hinzufügen, löschen etc) dann wird mir des erste wieder überschrieben. Ich hab keine Ahnung wo das sein soll.
Hab schon alles versucht, Haltepunkte gesetzt, aber konnte keinen Fehler finden.
Hier mal die Such-Methoden:
Die wird aufgerufen wenn ein Button geklickt wird zum ersten Scannen.
C#-Quellcode
- string pattern = textBox_pattern.Text;
- listView_files.Items.Clear();
- GUIenabled(false);
- button_startmon.Enabled = false;
- bool useapi = (checkBox_api.Checked) ? true : false;
- await Task.Run(() =>
- {
- foreach (int i in DriveSearch)
- {
- string di = OnlineDrives[i];
- if (useapi)
- {
- int files = 0;
- int folders = 0;
- long size = 0;
- ForList = APISearch.EnumerateFilesystem(di, ref files, ref folders, ref size); //hier das erste Dictionary
- }
- else
- {
- GetFiles(di, pattern);
- }
- }
- });
... und die hier wird aufgerufen, wenn der Benutzer die Anaylse stoppt.
C#-Quellcode
- string pattern = textBox_pattern.Text;
- bool useapi = (checkBox_api.Checked) ? true : false;
- GUIenabled(false);
- await Task.Run(() =>
- {
- foreach (int i in DriveSearch)
- {
- string di = OnlineDrives[i];
- if (useapi)
- {
- int files = 0;
- int folders = 0;
- long size = 0;
- AfterList = APISearch.EnumerateFilesystem(di, ref files, ref folders, ref size);
- }
- else
- {
- SecondGetFiles(di, pattern);
- }
- }
- });
- Analysefiles();
Die "ForList" bleibt solange richtig mit den Daten gefüllt, bis zu den Punkt wo AfterList zugewießen wird.
Wenn ich es über meine normale Suchfunktion mache, dann funktioniert es.
Ich bin wirklich ratlos.