Laden...

Dateiname aus Pfad filtern?

Erstellt von Lens445 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.459 Views
L
Lens445 Themenstarter:in
45 Beiträge seit 2017
vor 6 Jahren
Dateiname aus Pfad filtern?

Hey,

habe hier folgenden Code, der auch funktioniert:

            if (userInput == "1")
            {
                string[] allFiles = Directory.GetFiles(@"C:\Users\Debug", "*.txt");
               
                
                Console.WriteLine("Wähle eine Datei aus, die du öffnen möchtest:", allFiles.Length);
                Console.Write("\n");
                
                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, allFiles[index]);
                    
                    
                }
                string inputFile = Console.ReadLine(); 

                int userIndex;
                if (int.TryParse(inputFile, out userIndex)) 
                {
                    if (userIndex >= 0 && userIndex < allFiles.Length)
                    
                    {
                        string selectFile = allFiles[userIndex]; 
                        string readText = File.ReadAllText(selectFile);  
                        Console.WriteLine(readText); 
                    }
                    else
                    {
                        Console.WriteLine("Eingabe außerhalb des Bereichs!");
                    }
                }
                else
                {
                    Console.WriteLine("Kein numerischer Wert!");
                    Console.Read();
                }
                Console.Read();

Jetzt gibt er mir immer den kompletten Pfad aus, ich möchte aber das er mir eben nur den hinteren Teil also den Namen ausgibt.

Wie ihr seht habe ich es bereits mit

                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, allFiles[index]);
                    
                    
                }
                string inputFile = Console.ReadLine();

versucht. Man braucht ja die GetFileName Methode, aber wo liegt den mein Fehler? Finde im Internet nichts dazu und er gibt mir auch keinen Fehler aus 🤔

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo Lens445,

mit


string fileName = Path.GetFileName(allFiles[index]);
Console.WriteLine("{0} Datei: {1}", index, allFiles[index]);

hast du den Filename schon, aber du gibst trotzdem die File an der Stelle index im Array allFiles aus. Du verwendest den fileName ja gar nicht an der Stelle.

Das ist aber was, was man spätestens mit dem [Artikel] Debugger: Wie verwende ich den von Visual Studio? herausgefunden hätte. 😉

Gruss

Coffeebean

16.842 Beiträge seit 2008
vor 6 Jahren

Den Fehler kann man sicherlich sehr einfach durch einfaches Debugging klären.
[Artikel] Debugger: Wie verwende ich den von Visual Studio?

Das kannst nur Du kontrollieren an Deinem Code.
Da siehst Du was tatsächlich in den Variablen ist (und nicht nur das, was Du denkst 😉

L
Lens445 Themenstarter:in
45 Beiträge seit 2017
vor 6 Jahren

Ahhh danke! Hab ich total übersehen 8o

Aber: jetzt gibt er mir zwar nicht mehr den ganzen Pfad aus, aber dafür nur noch jeweils einen Buchstaben pro Datei 🤔

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo Lens445,

dann machst du irgendwo anders etwas. Wie gesagt: Schaue mal mit dem [Artikel] Debugger: Wie verwende ich den von Visual Studio? was in deinen Variablen drinsteht.

Gruss

Coffeebean

L
Lens445 Themenstarter:in
45 Beiträge seit 2017
vor 6 Jahren

Ok ich hab meinen Fehler gefunden! 🙂 es funktioniert 👍

                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, fileName);
                }
                string inputFile = Console.ReadLine();

Danke euch für die schnelle Hilfe

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo Lens445,

ich vermute mal, dass du an den string fileName auch einen index gehängt hast 😉 Ein String ist wie ein Array von Chars. Dann gibt er nur einen Buchstaben aus.

Aber jetzt klappts ja.

Gruss

Coffeebean

L
Lens445 Themenstarter:in
45 Beiträge seit 2017
vor 6 Jahren

Ja genau das war der Fehler.. X(

Aber ja jetzt klappt es 👍