public void MethodTestCd() { Directory racine = new Directory("/", null); Directory fichier = new Directory("test", racine); racine.Fichiers.Add(fichier); Assert.AreEqual(fichier, racine.cd("test")); }
public void TestChmod3() { Directory test = new Directory("test", null); int newPermission = 3; test.chmod(newPermission); Assert.AreEqual(3, test.permission); }
public override bool mkdir(string nom) { Directory newDirectory = new Directory(nom, this); Fichiers.Add(newDirectory); Console.WriteLine("Directory créé"); return true; }
public void GetPath() { Directory Test = new Directory("Test", RepertoireCourant); Directory Test1 = new Directory("Test1", Test); Assert.AreEqual("/" + Test.Nom + "/" + Test1.Nom + "/", Test1.GetPath()); }
public void TestMkdir() { Directory fichier = new Directory("test", null); Assert.IsTrue(fichier.mkdir("test")); Assert.IsTrue(fichier.Fichiers.Count == 1); }
public void TestGetParent() { Directory test1 = new Directory("test1", null); Directory test2 = new Directory("test2", test1); test1.Fichiers.Add(test2); Assert.AreEqual(test1,test2.getParent()); }
public void TestMethodLs() { Directory Fichier = new Directory("test", null); Directory dedans = new Directory("coucou", Fichier); Assert.AreEqual(Fichier.Fichiers.Count, 1); }
public void GetName() { Directory Test = new Directory("Test", RepertoireCourant); File TestFile = new File("TestFile", Test); Assert.AreEqual("TestFile", TestFile.GetName()); }
static void Main(string[] args) { Fichier courant = new Directory("/", null); string saisie; do { Console.Write( "|"+courant.Nom+"|"); string argument = null; string commande = null; string argument2 = null; saisie = Console.ReadLine(); string[] str = saisie.Split(' '); if (str.Length == 1) { commande = str[0]; argument = null; } else if (str.Length == 2) { commande = str[0]; argument = str[1]; } else if (str.Length == 3) { commande = str[0]; argument = str[1]; argument2 = str[2]; } if (courant.isDirectory() == true) { Directory courantDir = (Directory)courant; switch (commande) { case "mkdir": courantDir.mkdir(argument); break; case "cd": Fichier cdDir = courantDir.cd(argument); if (cdDir == null || !cdDir.canRead()) { Console.WriteLine("Vous ne pouvez pas faire ça"); } else { courant = cdDir; } break; case "ls": if (courantDir.canRead()) { List<Fichier> liste = courantDir.ls(); if (courant.isDirectory() == true) { foreach (Fichier file in liste) { Console.WriteLine(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 "create": courantDir.createNewFile(argument); break; case "parent": courant = courant.getParent(); break; case "search": List<Fichier> resultat = courantDir.search(argument); if (resultat != null) { foreach (Fichier file in resultat) Console.WriteLine(file.getPath()); } else { Console.WriteLine("Vous n'avez pas les droits de lire dans ce dossier"); } break; case "path": string path = courant.getPath(); Console.WriteLine(path); break; case"chmod": int permi = int.Parse(argument); courant.chmod(permi); break; case"rename": courantDir.rename(argument,argument2); break; case"file": if (courant.isFile()) { Console.WriteLine("C'est un fichier"); } else { Console.WriteLine("Ce n'est pas un fichier"); } break; case"directory": if (courant.isDirectory()) { Console.WriteLine("C'est un répertoire"); } else { Console.WriteLine("Ce n'est pas un répertoire"); } break; case"delete": courantDir.delete(argument); break; } } } while (saisie != "exit"); }
public void GetRoot() { Directory Test = new Directory("Test", RepertoireCourant); Directory Test2 = new Directory("Test2", Test); Directory Test3 = new Directory("Test3", Test2); Assert.AreEqual(Test2, Test3.GetRoot()); }
public void SetUp() { RepertoireCourant = new Directory("/", null); Chemin = new Directory("chemin", RepertoireCourant); }
public void TestNotCreateNewFile() { Directory fichier = new Directory("test", null); Assert.IsFalse(fichier.createNewFile("test")); Assert.IsFalse(fichier.Fichiers.Count == 1); }
public void TestNotDelete() { Directory test1 = new Directory("test1", null); Directory test2 = new Directory("test2", test1); test1.Fichiers.Add(test2); Assert.IsFalse(test1.delete("test2")); }
public void TestNotCanRead() { Directory test = new Directory("test", null); test.permission = 4; Assert.IsFalse(test.canRead()); }
public void TestMethodNotIsDirectory() { Directory test = new Directory("test", null); Assert.IsFalse(test.isDirectory()); }
public void TestMethodLs() { Directory test1 = new Directory("test1", null); Fichier test2 = new Fichier("test",test1); test1.Fichiers.Add(test2); Assert.AreEqual(test1.Fichiers, test1.ls()); }
public void TestMethodIsDirectory() { Directory test = new Directory("test", null); Assert.IsTrue(test.isDirectory()); }
public void TestGetPath() { Directory test1 = new Directory("test1", courant); Directory test2 = new Directory("test2", test1); test1.Fichiers.Add(test2); Assert.AreEqual(test1.Nom + "/" + test2.Nom + "/", test2.getPath()); }
public void NoPermissionsInCd() { RepertoireCourant.Chmod(0); Directory Chemin = new Directory("chemin", RepertoireCourant); File destination = RepertoireCourant.Cd("chemin"); Assert.AreEqual(destination, null); }
public void TestRename() { Directory test1 = new Directory("test1", null); Directory test2 = new Directory("test2", test1); test1.Fichiers.Add(test2); Assert.IsTrue(test1.rename("test2", "test3")); }
public void Cd() { Directory Java = new Directory("Java", RepertoireCourant); RepertoireCourant.ListeFiles.Add(Java); Assert.AreEqual(Java, RepertoireCourant.Cd(Java.Nom)); }
public void TestSearch() { Directory test = new Directory("test", null); test.mkdir("test1"); test.mkdir("test2"); test.mkdir("test3"); test.mkdir("test3"); Assert.AreEqual(2, test.search("test3").Count); }
public Fichier(string Nom, Directory Parent) { this.Nom = Nom; this.Parent = Parent; }
public void TestCanWrite() { Directory test = new Directory("test",null); test.permission = 2; Assert.IsTrue(test.canWrite()); }
public Directory(string Nom, Directory Parent) : base(Nom, Parent) { }
// Constructeurs public Directory(string nom, Directory parent) : base(nom,parent) { this.Nom = nom; ListeFiles = new List<File>(); }
public void MethodTestCd() { Directory fichier = new Directory("test", null); Assert.AreEqual("test", fichier.Nom); }
public void TestMethod1() { Directory fichier = new Directory("test", null); }
static void Main(string[] args) { string utilisateur = "Néo"; string saisiUtilisateur = ""; // Initialisation du répertoire par défaut lors du démarrage de l'application File RepertoireCourant = new Directory("",null); // Affichage du texte lors du démarrage de l'application Console.WriteLine("Welcome to FileSystem called XUNIL"); Console.WriteLine("Write what you want to do when it\'s requested"); Console.WriteLine("If you want to close CMD window, please write : exit"); Console.WriteLine("Try to find the easter-egg. It's related to 'Matrix' \n"); while (saisiUtilisateur != "exit") { Console.Write(utilisateur +" "+RepertoireCourant.GetPath() + " $ "); saisiUtilisateur = Console.ReadLine(); string[] saisiDecoupe = saisiUtilisateur.Split(' '); // Permet de ranger chaque argument dans une case d'un tableau, permettant notamment de distinguer chaque commande // Chaque case fera appel à la commande saisi par l'utilisateur. Si la commande n'existe pas, un message d'erreur apparaitra, sinon la commande sera exécuté. switch (saisiDecoupe[0]) { case "cd": if (saisiDecoupe.Length == 1) { Console.WriteLine("Vous n'avez spécifié aucun fichier ou dossier à joindre."); } else { File file = RepertoireCourant.Cd(saisiDecoupe[1]); if (file != null) { RepertoireCourant = file; } else { Console.WriteLine("Aucun fichier ou dossier ne porte ce nom."); } } break; case "ls": String liste = ""; if (RepertoireCourant.CanRead()) { if (RepertoireCourant.IsDirectory()) { foreach (File f in ((Directory)RepertoireCourant).Ls()) { liste += f.GetPermissions(); liste += " " + f.Nom + "\n"; } } else { liste += RepertoireCourant.GetPermissions(); liste += " " + RepertoireCourant.Nom + "\n"; Console.WriteLine("C'est un fichier."); } }else { Console.WriteLine("Vous n'avez pas la permission de lire dans le répertoire " + RepertoireCourant.GetPath()); } Console.Write(liste); break; case "mkdir": if (saisiDecoupe.Length < 2) { Console.WriteLine("Commande incomplète."); } else { if (RepertoireCourant.CanWrite()) { if (saisiDecoupe[1] == string.Empty) { Console.WriteLine("Vous n'avez spécifié aucun nom de dossier."); } else { if (RepertoireCourant.IsDirectory()) { if (!((Directory)RepertoireCourant).Mkdir(saisiDecoupe[1])) { Console.WriteLine("Erreur lors de la création du dossier."); } else { Console.WriteLine("Dossier crée avec succès."); } } else if (RepertoireCourant.IsFile()) { Console.WriteLine("Vous ne pouvez pas créer de dossier dans un fichier."); } } }else { Console.WriteLine("Vous n'avez pas la permission d'écrire dans "+ RepertoireCourant.GetPath()); } } break; case "path": Console.WriteLine(RepertoireCourant.GetPath()); break; case "root": RepertoireCourant = RepertoireCourant.GetRoot(); break; case "rename": if (saisiDecoupe.Length < 3) { Console.WriteLine("Il manque un ou plusieurs arguments pour que le renommage s'effectue correctement."); } else { if (RepertoireCourant.CanWrite()) { bool renamed = false; foreach (File f in ((Directory)RepertoireCourant).Ls()) { if (f.GetName() == saisiDecoupe[1]) { renamed = f.RenameTo(saisiDecoupe[2]); break; } } if (renamed == false) { Console.WriteLine("Aucun fichier ou dossier ayant ce nom."); } } else { Console.WriteLine("Vous n'avez pas la permission de renommer " + saisiDecoupe[1] + "."); } } break; case "create": if (saisiDecoupe.Length < 2) { Console.WriteLine("Il manque le nom du fichier que vous voulez créer."); } else { if(RepertoireCourant.CanWrite()) { if (!((Directory)RepertoireCourant).createNewFile(saisiDecoupe[1])) // Le if exécute la méthode createNewFile et si la valeur // retourné est true; ça crée le fichier sinon ça affiche l'erreur { Console.WriteLine("Erreur lors de la création du fichier."); } else { Console.WriteLine("Fichier crée avec succès."); } }else { Console.WriteLine("Vous n'avez pas la permission d'écrire dans " + RepertoireCourant.GetPath()); } } break; case "parent": RepertoireCourant = RepertoireCourant.GetParent(); break; case "search": if (saisiDecoupe.Length < 2) { Console.WriteLine("Il manque l'argument pour que la commande soit exécuté."); } else { if (RepertoireCourant.CanRead()) { if (RepertoireCourant.IsDirectory()) { foreach (File result in ((Directory)RepertoireCourant).Search(saisiDecoupe[1])) { Console.WriteLine(result.GetPath()); } } else if (RepertoireCourant.IsFile()) { Console.WriteLine("Vous ne pouvez pas rechercher dans un fichier."); } } } break; case "file": if (RepertoireCourant.IsFile()) { Console.WriteLine("C'est un fichier."); } else { Console.WriteLine("Ce n'est pas un fichier."); } break; case "directory": if (RepertoireCourant.IsDirectory()) { Console.WriteLine("C'est un dossier."); } else { Console.WriteLine("Ce n'est pas un dossier."); } break; case "name": Console.WriteLine(RepertoireCourant.GetName()); break; case "delete": if (saisiDecoupe.Length < 2) { Console.WriteLine("Il n'y pas pas assez d'arguments dans votre commande."); } else { bool deleted = false; deleted = ((Directory)RepertoireCourant).Delete(saisiDecoupe[1]); if (!deleted) { Console.WriteLine("Aucun fichier ou dossier ayant ce nom."); } } break; case "chmod": if (saisiDecoupe.Length < 2 || saisiDecoupe.Length == 1) { Console.WriteLine("Il n'y pas pas assez d'arguments dans votre commande."); } else { RepertoireCourant.Chmod(int.Parse(saisiDecoupe[1])); } break; case "matrix": // Petit easter-egg sympatique :-) int aleatoire; Random r = new Random(); Console.WriteLine("Bienvenue dans la matrice de XUNIL. Ceci est un easter-egg totalement inutile et qui bloquera l'éxécutation de l'OS le plus abouti du monde."); for (int i = 5; i >= 0; i--) { Console.Write(i + "\r"); System.Threading.Thread.Sleep(1000); } Console.WriteLine(""); while (true) { aleatoire = r.Next(0, 2); Console.Write(aleatoire); } default: Console.WriteLine("Votre commande n'est pas reconnu par le système XUNIL."); break; } } }
public File GetParent() { File parent = null; if (this.parent != null) { parent = this.parent; } else { Console.WriteLine("Je suis à la racine et je veux pas exploser."); return this; } return parent; }