Rekursive Dateisuche - Nicht alle Dateien gefunden



  • Einen Guten Abend wünsche ich,

    ich habe jetzt lange in Google gesucht, und auch mehrere Lösungswege gefunden, die letztendlich alle auf meine Lösung rauslaufen. Der Code scheint von der Sache her auch richtig zu sein, aber es werden nie alle Dateien gefunden. Kann es sein, dass bestimmte Dateien in der Suche nicht erfasst werden?

    hier mein C# Code

    private void Search(string searchPattern, string sDir)
    {
    	if(bSearching)
    	{
    		try
    		{
    			foreach (string myFile in Directory.GetFiles(sDir, searchPattern))
    			{
    		            FileFound(new object(), new FileFoundEventArgs(new FileInfo(myFile)));
    			}
    
    			foreach (string myDirectory in Directory.GetDirectories(sDir))
    			{
    				Search(searchPattern, myDirectory);
    			}
    		}
    
    		catch (System.Exception e)
    		{
    			Console.WriteLine(e.Message);
    		}
    	}
    }
    

    Ist daran etwas falsch, oder werden wirklich Dateien in der Suche nicht erfasst?

    Gruß

    Markus Seidl



  • Angren Aldaron schrieb:

    Einen Guten Abend wünsche ich,

    ich habe jetzt lange in Google gesucht, und auch mehrere Lösungswege gefunden, die letztendlich alle auf meine Lösung rauslaufen. Der Code scheint von der Sache her auch richtig zu sein, aber es werden nie alle Dateien gefunden. Kann es sein, dass bestimmte Dateien in der Suche nicht erfasst werden?

    hier mein C# Code

    private void Search(string searchPattern, string sDir)
    {
    	if(bSearching)
    	{
    		try
    		{
    			foreach (string myFile in Directory.GetFiles(sDir, searchPattern))
    			{
    		            FileFound(new object(), new FileFoundEventArgs(new FileInfo(myFile)));
    			}
    			
    			foreach (string myDirectory in Directory.GetDirectories(sDir))
    			{
    				Search(searchPattern, myDirectory);
    			}
    		}
    		
    		catch (System.Exception e)
    		{
    			Console.WriteLine(e.Message);
    		}
    	}
    }
    

    Ist daran etwas falsch, oder werden wirklich Dateien in der Suche nicht erfasst?

    Gruß

    Markus Seidl

    Ein Problem könnte sein das dein Searchpattern fehlerhaft ist, oder was ich eher glaube, er trifft auf Dateien oder Ordner auf die er nicht zugreifen kann, und es wird eine Exception geworfen, schon springst du aus deiner schönen rekursiven Funktion raus und er macht nicht weiter und es fehlt dir dann der Rest. Meine Vermutung dazu, der Code an sich scheint sonst okay.



  • Etwa raff ichs nicht, oder ich werd hier echt verrückt. Jetzt setze ich den gleichen Code wieder ein, und auf einmal funktionierts. Es sind wirklich Exceptions aufgetreten.
    Vielleicht habe ich zu vorher doch was verändert, oder die Heinzelmännchen haben mein Programm repariert 🙂 . Auf alle Fälle funktionierts jetzt. Ich bedanke mich trotzdem für deine Hilfe Talla, es muss wohl was mit den Exceptions zutun gehabt habe. Als ich in der Fehlerbehandlung (catch routine) eine MessageBox einbaute, hats auf einmal funktioniert. Die Suche ist genau dort stehen geblieben wo mir die Dateien gefehlt haben.

    Gruß

    Markus Seidl


Anmelden zum Antworten