Ejemplo n.º 1
0
        public void SetUp()
        {
            courants = new Directory("/", true);
            courants.mkdir("TDD");
            courants.mkdir("ProMac");
            courants.mkdir("AMortJava");
            courants.createNewFile("CeciEstUneFile");
            TDD = courants.cd("TDD");
            TDDDirectory = (Directory)TDD;
            TDDDirectory.chmod(7);
            TDDDirectory.mkdir("ViveBSD");
            ViveBSD = (Directory)TDDDirectory.cd("ViveBSD");
            ViveBSD.chmod(7);
            ViveBSD.mkdir("FreeBSD");
            FreeBSD = (Directory)ViveBSD.cd("FreeBSD");

            CeciEstUneFile = courants.cd("CeciEstUneFile");
            ProMac = (Directory)courants.cd("ProMac");
            AMortJava = (Directory)courants.cd("AMortJava");
        }
Ejemplo n.º 2
0
        public bool mkdir(string nom)
        {
            if (base.canWrite() && verifyname(nom))
            {
                Directory newdirectory = new Directory(nom, this);
                contenu.Add(newdirectory);

                return true;
            }
            else
                return false;
        }
Ejemplo n.º 3
0
 // STARTING
 public File(string nom, Directory parent)
 {
     this.Nom = nom;
     this.Parent = parent;
 }
Ejemplo n.º 4
0
 public Directory(string nom, Directory parent)
     : base(nom, parent)
 {
 }
Ejemplo n.º 5
0
        // J'ai pris le parti de mettre tout l'affichage dans mon programme principale
        // Je m'explique : J'ai souhaiter séparer algo pur et affichage graphique, pour les raisons évoqué dans ton cours (tests unitaires, interface ...)
        // Je ne sais pas si cela est une bonne pratique ... Je t'avais d'ailleurs fait la remarque par mail (Ajouter une classe pour l'affichage), mais tu m'avais dit que ce n'était pas la peine.
        // De plus, c'est ce que j'ai compris dans ta démarche de nous imposé les signatures de méthodes.
        // Bonne correction !
        static void Main(string[] args)
        {
            string command;
             File courants = new Directory("/", true);

            do
            {
            Console.ForegroundColor = ConsoleColor.DarkCyan;
            Console.Write("["+ courants.Nom +"] # ");
            Console.ResetColor();
            string saisie = Console.ReadLine();
            command = GetCommand(saisie);
            string arg = GetArg(saisie);
            string secondarg = GetSecondArg(saisie);

            if (courants.isDirectory())
            {
            Directory courant = (Directory)courants;

            if (command.Equals("create") && arg != null)
            {
            bool ok = courant.createNewFile(arg);

            if (ok)
            {
                Console.WriteLine("Fichier correctement créer");
            }
            else
                Console.WriteLine("Echec dans la création du fichier");

            }

            else if (command.Equals("mkdir") && arg != null)
            {
            bool ok = courant.mkdir(arg);
            if (ok)
                Console.WriteLine("Dossier " + arg + " créer");
            else
                Console.WriteLine("Echec dans la création du dossier");
            }
            if (command.Equals("ls"))
            {

                List<File> list = courant.ls();

                if (list == null) {

                    Console.WriteLine("Vous n'avez pas le droit de faire cette action");

                }
                else if (list.Count == 0)
                {
                    Console.WriteLine("Le dossier spécifié est vide");
                }
                else
                {
                    foreach (File encours in list)
                    {
                        string type = "";

                        if (encours.isDirectory()) { type = "Directory"; }
                        else if (encours.isFile()) { type = "File"; }

                        Console.WriteLine(encours.GetPermission() + " " + encours.Nom + " " + type);

                    }
                }

            }
            else if (command.Equals("cd") && arg != null)
            {

             File next = courant.cd(arg);

            if (next == null)
             {
                 Console.WriteLine("Déplacement invalide");
             }
             else {
                 courants = next;
             }
            }

            else if (command.Equals("search") && arg != null)
            {

            List<File> resultat = courant.search(arg);
            if (resultat != null)
            {
                foreach (File encours in resultat)
                    Console.WriteLine(encours.getPath());
            }
            else {
                Console.WriteLine("Vous n'avez pas les droits de lire dans ce dossier");
            }
            }

            else if (command.Equals("delete") && arg != null)
            {

            bool ok = courant.delete(arg);

            if (ok)
            {
                Console.WriteLine("Fichier correctement supprimée");
            }
            else
                Console.WriteLine("Echec dans la suppression");

            }
            else if (command.Equals("rename") && arg != null && secondarg != null)
            {
            bool ok = courant.rename(arg, secondarg);

            if (ok)
            {
                Console.WriteLine("Le fichier/dossier à correctement été renommé");
            }
            else
            {
                Console.WriteLine("Vous ne pouvez pas renommé ce fichier/dossier");
            }
            }

            }
            else if(courants.isFile()) { // COMMANDE SI C'EST UNE FILE

            if (command == "ls")
            {

                Console.WriteLine("Vous êtes dans une file");
            }

            }

            // COMMANDE VALABLE POUR LES 2 TYPES
            if (command.Equals("")) { }

            if (command.Equals("parent")) {

            courants = courants.getParent();
            }

            if (command.Equals("path"))
            {
            string path  = courants.getPath();

            if (path != null)
            {
            Console.WriteLine(path);
            }
            else
            Console.WriteLine("Vous n'avez pas le droit de faire cette action");
            }

            if (command.Equals("file"))
            {
            if (courants.isFile())
            {
            Console.WriteLine("Cette chose est un fichier");
            }
            else
            {
            Console.WriteLine("Cette chose n'est pas un fichier");
            }
            }

            if (command.Equals("directory"))
            {

            if (courants.isDirectory())
            {
            Console.WriteLine("Cette chose est un dossier");
            }
            else
            {
            Console.WriteLine("Cette chose n'est pas un dossier");
            }
            }

            if (command.Equals("root"))
            {

            File root = courants.getRoot();

            if (root != null)
            {
            Console.WriteLine(root.Nom);
              }
            else
            Console.WriteLine("Vous n'avez pas le droit de faire cette action");
            }

            if (command.Equals("chmod") && saisie != null && arg != null)
            {
            try
            {
                int perm = int.Parse(arg);
                if(perm >= 0 && perm < 8 && !courants.isSlash)
                    courants.chmod(perm);
                else if (perm <= 0 || perm > 8)
                   Console.WriteLine("Le CHMOD est compris entre 0 et 7 !");
                else if (courants.isSlash)
                    Console.WriteLine("Le CHMOD ne peut être effectué sur / ");
            }
            catch {
                Console.WriteLine("CHMOD incorrect");
            }
            }

            if (command.Equals("exit") && saisie != null)
            {
            Console.WriteLine("System halted");
            }

            } while(!command.Equals("exit"));

            Console.ReadLine();
        }