Exemple #1
0
 //Constructeur
 public Directory(string nom, Directory parent)
     : base(nom, parent)
 {
     this.Nom = nom;
     listeFiles = new List<File>();
     permission = 4;
 }
Exemple #2
0
 //Constructeur
 public File(string nom, Directory parent)
 {
     this.Nom = nom;
     this.parent = parent;
     permission = 4;
 }
Exemple #3
0
        static void Main(string[] args)
        {
            File Courant = new Directory("/", null);
            Directory CourantDir=null;
            string SaisieUser = "";
            string utilisateur = "Benjamin_T";
            Console.WriteLine("Bienvenue dans ce splendide simulateur UNIX");
            Console.WriteLine("Veuillez saisir les commandes souhaitées.");
            Console.WriteLine("Pour quitter le simulateur, veuillez saisir exit.\n");

            while (SaisieUser != "exit")
            {
                Console.Write("["+utilisateur+"] $ " + Courant.Nom + "/  ");
                SaisieUser = Console.ReadLine();
                string[] saisieSplit = SaisieUser.Split(' ');

                  if (Courant.isDirectory() == true){
                      CourantDir = (Directory)Courant;
                  }

                switch (saisieSplit[0])

                {
                    case "cd":
                        File fileCD = CourantDir.cd(saisieSplit[1]);
                        if (saisieSplit.Length == 1)
                        {
                            Console.WriteLine("Veuillez spécifier un dossier ou un fichier.");
                        }
                        else if (fileCD != null)
                        {
                            Courant = fileCD;
                        }
                        else
                            Console.WriteLine("Le déplacement n'est pas possible (Fichier inexistant)");
                        break;

                    case "ls":
                         if (CourantDir.canRead())
                            {
                                List<File> liste = CourantDir.ls();
                                if (Courant.isDirectory() == true)
                                {
                                    foreach (File file in liste)
                                    {
                                        Console.WriteLine(file.getPermission()+ " " + file.Nom);
                                    }
                                }
                                else if (Courant.isFile() == true)
                                {
                                    Console.WriteLine("Vous êtes dans un file");
                                }
                            }
                            else {
                                Console.WriteLine("Vous n'avez pas la permission");
                            }
                        break;

                    case "mkdir":
                        if (saisieSplit.Length >= 2)
                        {
                            if (CourantDir.mkdir(saisieSplit[1]))
                            {
                                Console.WriteLine("Le dossier " + saisieSplit[1] + " est bien créé.");
                            }
                            else
                            {
                                Console.WriteLine("Echec de la création du dossier.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Veuillez saisir la commande complète svp.");
                        }
                        break;

                    case "path":
                        string path = Courant.getPath();
                        Console.WriteLine(path);
                        break;

                    case "root":
                        Courant = Courant.getRoot();
                        break;

                    case "rename":
                        if (saisieSplit.Length>=3)
                        {
                            if(Courant.renameTo(saisieSplit[2]))
                            {
                                Console.WriteLine("Le fichier ou dossier précisé a bien été renommé");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Veuillez saisir la commande complète svp.");
                        }
                        break;

                    case "create":
                        if (saisieSplit.Length >= 2)
                        {
                            if (CourantDir.createNewFile(saisieSplit[1]))
                            {
                                Console.WriteLine("Fichier bien créé.");
                            }
                            else
                            {
                                Console.WriteLine("Echec de la création.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Veuillez saisir la commande complète svp.");
                        }
                        break;

                    case "parent":
                        Courant = Courant.getParent();
                        break;

                    case "search":
                        if (saisieSplit.Length >= 2)
                        {
                            List<File> resultat = CourantDir.search(saisieSplit[1]);
                            if (resultat != null)
                            {
                                foreach (File file in resultat)
                                    Console.WriteLine(file.getPath());
                            }
                            else
                            {
                                Console.WriteLine("La recherche n'a pas abouti");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Veuillez saisir la commande complète svp.");
                        }
                        break;

                    case "file":
                        if (Courant.isFile())
                        {
                            Console.WriteLine("Ceci est une file");
                        }
                        else
                        {
                            Console.WriteLine("Ceci n'est pas une file.");
                        }
                        break;

                    case "directory":
                        if (Courant.isDirectory())
                        {
                            Console.WriteLine("Ceci est un directory");
                        }
                        else
                        {
                            Console.WriteLine("Ceci n'est pas un directory");
                        }
                        break;

                    case "name":
                        Console.WriteLine("Le nom du fichier est " + Courant.getName());
                        break;

                    case "delete":
                        if (saisieSplit.Length >= 2)
                        {
                            if (CourantDir.delete(saisieSplit[1]))
                            {
                                Console.WriteLine("Fichier bien supprimé.");
                            }
                            else
                            {
                                Console.WriteLine("Echec de la supression.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Veuillez saisir la commande complète svp.");
                        }

                        break;

                    case "chmod":
                        if (saisieSplit.Length >= 2)
                        {
                            Courant.chmod(int.Parse(saisieSplit[1]));
                            Console.WriteLine("Modification de permission effectuée avec succès.");
                        }
                        else
                            Console.WriteLine("Veuillez saisir le degré de permission.");
                        break;

                    default:
                        Console.WriteLine("Commande erronée ou inconnue. Veuillez recommencer.");
                        break;
                }

            }
        }
Exemple #4
0
 public void TestCd()
 {
     courantReplace = new Directory("New", courant);
     courant.listeFiles.Add(courantReplace);
     Assert.AreEqual(courantReplace, courant.Cd(courantReplace.Nom));
 }
Exemple #5
0
 public void TestNotDelete()
 {
     //On teste de supprimer un fichier inexistant
     test = new Directory("Test", courant);
     fileTest = new File("FileTest", test);
     test.listeFiles.Add(fileTest);
     Assert.IsTrue(test.listeFiles.Count == 1);
     Assert.IsFalse(test.Delete("FileTest2"));
     Assert.IsTrue(test.listeFiles.Count == 1);
 }
Exemple #6
0
 public void IsDirectory()
 {
     testDirectory = new Directory("testDirectory", courant);
     Assert.IsTrue(testDirectory.IsDirectory());
 }
Exemple #7
0
 public void TestGetRoot()
 {
     test = new Directory("Test", courant);
     test1 = new Directory("Test1", test);
     test2 = new Directory("Test2", test1);
     Assert.AreEqual(test1, test2.GetRoot());
 }
Exemple #8
0
 public void TestGetPath()
 {
     test = new Directory ("Test", courant);
     test1 = new Directory ("Test1", test);
     Assert.AreEqual(test.Nom + "/" + test1.Nom+"/", test1.GetPath());
 }
Exemple #9
0
 public void TestGetParent()
 {
     test = new Directory("Test", courant);
     Assert.AreEqual(test.Parent, test.GetParent());
 }
Exemple #10
0
 public void TestGetName()
 {
     test = new Directory("Test", courant);
     fileTest = new File("FileTest", test);
     Assert.AreEqual("FileTest", fileTest.GetName());
 }
Exemple #11
0
 public void TestDelete()
 {
     test = new Directory("Test", courant);
     fileTest = new File("FileTest", test);
     test.listeFiles.Add(fileTest);
     Assert.IsTrue(test.listeFiles.Count == 1);
     Assert.IsTrue(test.Delete("FileTest"));
     Assert.IsTrue(test.listeFiles.Count == 0);
 }