public void TestIsFile_Directory()
 {
     Directory dossier = new Directory("dossier", null);
     Assert.IsFalse(dossier.isFile());
 }
示例#2
0
        public static void commande(Directory Actuel)
        {
            Console.Write(Actuel.path + "> ");
            string commandes = Console.ReadLine();
            List<string> action = new List<string> (commandes.Split(' '));
               switch (action[0])
               {
                   case "path":
                       if (action.Count == 1)
                       {
                           Console.WriteLine(Actuel.getPath());
                       }
                       else
                       {
                           goto default;
                       }
                   break;
                   case "create":
                   if (action.Count == 2)
                   {
                       bool test = false;
                       foreach (File fichier in Actuel.Fichiers)
                       {
                           if (fichier.Nom == action[1])
                           {
                               Console.WriteLine("Ce fichier existe déjà");
                               test = true;
                               break;
                           }
                       }
                       if (test == false)
                       {
                           Actuel.createNewFile(action[1]);
                       }
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "mkdir":
                   if (action.Count == 2)
                   {
                       bool test = false;
                       foreach (File fichier in Actuel.Fichiers)
                       {
                           if (fichier.Nom == action[1])
                           {
                               Console.WriteLine("Ce fichier existe déjà");
                               test = true;
                               break;
                           }
                       }
                       if (test == false)
                       {
                           Actuel.mkdir(action[1]);
                       }
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "name":
                   if (action.Count == 1)
                   {
                       Console.WriteLine(Actuel.getName());
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "ls":
                   if (action.Count == 1)
                   {
                       if (Actuel.Fichiers.Count > 0)
                       {
                           Console.WriteLine();
                           foreach (File file in Actuel.ls())
                           {

                               if (file.GetType().ToString() == "FileSystem.Directory")
                               {
                                   Console.WriteLine("D " + file.Nom);
                               }
                               else
                               {
                                   Console.WriteLine("F " + file.Nom);
                               }
                           }
                           Console.WriteLine();
                       }
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "cd":
                       if (action.Count == 2)
                       {
                           if (Actuel.cd(action[1]).Nom == Actuel.Nom)
                           {
                               Console.WriteLine("Répertoire inexistant...");
                           }
                           else
                           {
                               if (Actuel.cd(action[1]).GetType().ToString() == "FileSystem.File")
                               {
                                   Console.WriteLine("Vous ne pouvez pas entrer dans un fichier");
                               }
                               else
                               {
                                   Actuel = (Directory)Actuel.cd(action[1]);
                               }
                           }
                       }
                       else
                       {
                           goto default;
                       }
                   break;
                   case "file":
                       if (action.Count == 1)
                       {
                           if (Actuel.isFile() == true)
                           {
                               Console.WriteLine("C'est un fichier");
                           }
                           else
                           {
                               Console.WriteLine("Ce n'est pas un fichier");
                           }
                       }
                       else
                       {
                           goto default;
                       }

                   break;
                   case "rename":
                   if (action.Count == 3)
                   {
                       if (Actuel.renameTo(action[2]) == true)
                       {
                           bool work = false;
                           foreach (File fichier in Actuel.Fichiers)
                           {
                               if (action[2] == fichier.Nom)
                               {
                                   Console.WriteLine("Ce nom est déjà existant...");
                                   work = true;
                                   break;
                               }
                               else
                               {
                                   if (fichier.Nom == action[1])
                                   {
                                       work = true;
                                       fichier.Nom = action[2];
                                       break;
                                   }
                               }
                           }
                           if (work == false)
                           {
                               Console.WriteLine("Impossible de renommer, fichier inexistant");
                           }
                       }
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "chmod":
                       if (action.Count == 2)
                       {
                           int permission;
                       if (Int32.TryParse(action[1], out permission))
                       {
                           permission = Int32.Parse(action[1]);
                           Actuel.chmod(permission);
                       }
                       else
                       {
                           Console.WriteLine("Permission impossible");
                       }
                       }
                       else
                       {
                           goto default;
                       }

                   break;
                   case "directory":
                   if (action.Count == 1)
                   {
                       if (Actuel.isDirectory() == true)
                       {
                           Console.WriteLine("C'est un répertoire");
                       }
                       else
                       {
                           Console.WriteLine("Ce n'est pas un répertoire");
                       }
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "delete":
                   if (action.Count == 2)
                   {
                       Actuel.delete(action[1]);
                   }
                   else
                   {
                       goto default;
                   }

                   break;
                   case "root":
                   if (action.Count == 1)
                   {
                       Directory root = Actuel;
                       while (root.parent.Nom != "C:")
                       {
                           root = (Directory)root.getParent();
                       }
                       Console.WriteLine(root.Nom);
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "parent":
                   if (action.Count == 1)
                   {
                       if (Actuel.getParent() != Actuel)
                       {
                           Actuel = (Directory)Actuel.getParent();
                       }

                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   case "exit":
                   if (action.Count == 1)
                   {
                       System.Environment.Exit(-1);
                   }
                   else
                   {
                       goto default;
                   }
                   break;
                   default:
                   Console.WriteLine("Commande inexistante, incomplète ou argument non valide");
                   break;
               }
               commande(Actuel);
        }
示例#3
0
        public void DirectoyIsFiles()
        {
            Directory dossier = new Directory("moi", null);

            Assert.IsFalse(dossier.isFile());
        }
示例#4
0
 public void fileDirectory()
 {
     dossier = (Directory)fileSystem.cd("dossier");
     Assert.IsFalse(dossier.isFile());
 }
示例#5
0
        static void Main(string[] args)
        {
            string commande;
            File enCour = new Directory(" C: ", true);

            do
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("[" + enCour.Name + "]");
                Console.ResetColor();

                string saisie = Console.ReadLine();
                commande = getCommand(saisie);
                string arg = getArgument(saisie);
                string argBis = getArgumentBis(saisie); //Nouvelle saisie pour renommer un fichier

                try
                {
                    Directory current = (Directory)enCour;
                    if (commande != "mkdir" && commande != "create" &&
                    commande != "cd" && commande != "rename" &&
                    commande != "search" && commande != "delete" &&
                    commande != "path" && commande != "ls" && commande != "root" &&
                    commande != "parent" && commande != "file" && commande != "directory" &&
                    commande != "name" && commande != "chmod" && commande != "exit")
                    {
                        Console.WriteLine("Commande inconnue, veuillez réessayer");
                    }

                    if (commande == "create" && saisie != null)
                    {
                        bool estOK = current.createNewFile(arg);

                        if (estOK)
                        {
                            Console.WriteLine("Le fichier est créé");
                        }
                        else
                        {
                            Console.WriteLine("Erreur! Le fichier n'a pas été créé (Vérifiez vos permissions)");
                        }

                    }

                    else if (commande == "mkdir" && arg != null && saisie != null)
                    {
                        bool estOK = current.mkdir(arg);

                        if (estOK)
                        {
                            Console.WriteLine("Dossier " + "<" + arg + ">" + " créé");
                        }
                        else
                        {
                            Console.WriteLine("Vous ne disposez pas des droits!");
                        }

                    }

                    if (commande == "ls" && saisie != null && arg == null)
                    {
                        if (current.canRead())
                        {
                            List<File> list = current.ls();

                            if (list.Count == 0)
                            {
                                Console.WriteLine("Le dossier est vide");
                            }
                            else
                            {
                                foreach (File charge in list)
                                {
                                    if (charge.isFile() == true)
                                    {
                                        Console.WriteLine("(" + charge.getPermission() + ")" + " (f) " + charge.Name);
                                    }
                                    else
                                    {
                                        Console.WriteLine(charge.getPermission() + " (d) " + charge.Name);
                                    }

                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("Vous n'avez pas les droits nécessaires");
                        }
                    }
                    else if (commande == "cd" && arg != null && saisie != null)
                    {
                        File suivant = current.cd(arg);

                        if (suivant == null)
                        {
                            Console.WriteLine("Vous ne pouvez pas vous déplacer");
                        }
                        else
                        {
                            enCour = suivant;

                        }
                    }
                    if (commande == "delete" && saisie != null && arg != null)
                    {
                        bool estOk = current.delete(arg);
                        if (estOk)
                        {
                            Console.WriteLine("Le fichier est supprimé.");
                        }
                        else

                        {
                            Console.WriteLine("Suppression impossible.");
                        }
                    }
                    if (commande == "rename" && arg != null && saisie != null && argBis != null)
                    {
                        File nvNom = current.cd(arg);

                        bool estOk = nvNom.renameTo(argBis);

                        if (estOk)
                        {
                            Console.WriteLine("Dossier/Fichier renommé avec succès!");
                        }
                        else
                        {
                            Console.WriteLine("Erreur! Dossier/Fichier impossible à renommer");
                        }
                    }
                    if (commande == "search" && saisie != null && arg != null)
                    {
                        List<File> resultat = current.search(arg);

                        foreach (File encours in resultat)
                        {
                            Console.WriteLine(encours.getPath());
                        }
                    }

                }
                catch
                {
                    if (commande == "ls" && saisie != null)
                    {
                        Console.WriteLine("Vous êtes dans un fichier ");
                    }
                }

                if (commande == "path")
                {
                    string lepath = enCour.getPath();
                    Console.WriteLine(lepath);
                }

                if (commande == "parent")
                {
                    enCour = enCour.getParent();
                }
                if (commande == "directory")
                {
                    if (enCour.isDirectory())
                    {
                        Console.WriteLine("C'est un dossier.");
                    }
                    else
                    {
                        Console.WriteLine("Ce n'est pas un dossier.");
                    }
                }

                if (commande == "file")
                {
                    if (enCour.isFile())
                    {
                        Console.WriteLine("C'est un fichier.");
                    }
                    else
                    {
                        Console.WriteLine("Ce n'est pas un fichier.");
                    }
                }
                if (commande == "name")
                {
                    string lenom = enCour.getName();
                    Console.WriteLine("-->" + lenom);
                }
                if (commande == "root")
                {
                    File root = enCour.getRoot();
                    Console.WriteLine(root.Name);
                }

                if (commande == "clear")
                {
                    Console.Clear();
                }

                if (commande == "chmod" && saisie != null)
                {
                    try
                    {
                        enCour.chmod(int.Parse(arg));
                    }
                    catch
                    {
                        Console.WriteLine("Attention, le nombre pour la permission est incorrect.");
                    }
                }
                if (commande == "restart" && saisie != null)
                {
                    Console.WriteLine("Le système va redémarrer");
                }

            } while (commande != "restart");

            Console.ReadLine();
        }