Komplexes Problem Directory



  • eine ernst gestellte frage !!!
    wenn ihr nicht helfen könnt dann labert nicht wirr rum wie "hausaufgaben machen wir nicht" oder
    "guck mal in der msdn nach" denn soweit war ich selber schon also jetzt zum problem

    Habe ein komplexes problem zumindest scheint es so steige nicht dahinter
    wie es weiter gehen soll wenn ich cd einge soll der directory pfad eine ebene tiefer rein gehen und
    bei cd.. wieder eine ebene höher gehen.

    habe schon einiges in erfahrung bringen können und geschrieben aber das geht net so
    sind da logik fehler oder syntak fehler??

    eure hilfe wäre mal echt schöne

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    
    namespace CommandPrompt
    {
        internal class Program
        {
            static string currentPath = @"C:\";
    
            private static void Main(string[] args)
            {
    
                while (true)
                {
                    ShowLocation(currentPath);
                    string userInput = Console.ReadLine(); // hier wird die funktion benutzt
    
                    if (!CheckUserInput(userInput))
                        break;
                }
    
                ShowLocation(currentPath);
                //Environment.CurrentDirectory --> Gibt dir das derzeitige Verzeichnis
    
                DirectoryInfo dirinfo = new DirectoryInfo(@"C:\");
    
                foreach (DirectoryInfo info in dirinfo.GetDirectories()) //zeigt die unterordner mit an
                {
                    Console.WriteLine(info.FullName + string.Format("        <{0}>", info.CreationTime));
                }
            }
    
            //-----------------------------------------------------------------------------------------
            private static void ShowLocation(string currentLocation) //funktion zur festen lokalisierung
            {
                Console.Write(currentLocation + ">"); //zusatz um > zu haben
            }
    
            //-----------------------------------------------------------------------------------------
    
            //--------beginn der funktion für eingabe---
            private static bool CheckUserInput(string userInput)
            {
                bool result = true;
    
                if (userInput.ToUpper() == "EXIT") //  eingabe check wenn exit dann geht er raus
                {
                    result = false;
                }
                else if (userInput.ToUpper().StartsWith("DIR")) // vergleiche wenn eingabe startet mit cd
                {
    
                    if (userInput.ToUpper().StartsWith("CD"))    //wenn der input = cd)
                    {
                        string DirectoryName = userInput;   //(dirname = cd)
                        userInput = Path.Combine(currentPath, DirectoryName);  //(cd = pfad combine -> c:\\ mit CD)
                        currentPath = DirectoryName;                        //(c:\\xy = dirname)
                        Console.WriteLine(DirectoryName);
                    }
    
                    if (userInput.ToUpper().StartsWith("CD "))
                    {
                        string directoryName = userInput;
    
                        currentPath = Path.Combine(currentPath, directoryName);
                        Console.WriteLine(currentPath);
                        // den anderen teil (dirname holen)   
                    }
                    else
                    {
                        // aktuelles verzeichnis ausgeben
                        DirectoryInfo dirinfo = new DirectoryInfo(currentPath);
                        //eingabe check fall dir eingegeben wird dann macht der eine ausgabe der listing
                        foreach (DirectoryInfo info in dirinfo.GetDirectories())
                        {
                            Console.WriteLine(info.FullName + string.Format("   <{0}>", info.CreationTime));
                        }
                    }
    
                    //else (Directory.Exists == false)
                    // {
                    // Console.WriteLine("unbekannte eingabe");
                    // userInput=Console.ReadLine();
                    // }
                }
                else if (userInput.ToUpper().StartsWith("CD.."))
                {
    
                    DirectoryInfo cd = new DirectoryInfo(currentPath);
                    DirectoryInfo parentDir = cd.Parent;
                    currentPath = parentDir.FullName;
                    //Console.WriteLine("{0},{1}", cd.Name, parentDir.Name);                
    
                    //string directoryName = userInput;
                    //currentPath = Path.Combine(currentPath, directoryName);
                    //Console.WriteLine("Change cd.. to " + (currentPath = @"C:\"));
                    //directoryName.LastIndexOf(currentPath);
    
                }
    
                else
                {
                    Console.WriteLine("Unknown command.."); //ausgabe fehlermeldung wenn kein exit oder dir eingegeben wird
                }
    
                return result; //rückgabe wert "Result"
    
                //-------------------------------------------------------------------------------------
            }
        }
    }
    


  • Ist nicht ernst gemeint, oder? Pure Neugier: Unter http://forum.chip.de/c-net/cmd-directory-programmierung-1029382.html, warst Du das? Nein, ich glaube nicht, da sind die "logik fehler oder syntak fehler" nicht drin. Oder doch? - Ich würde sagen: Zurück auf die Schulbank!


Anmelden zum Antworten