Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            //Directorios
            Elemento d1 = new Directorio("Raiz");
            Elemento d2 = new Directorio("Directorio Vacio");
            Elemento d3 = new Directorio("Directorio Con Archivo Unico");
            Elemento d4 = new Directorio("Directorio Con Archivo Comprimido Simple");
            Elemento d5 = new Directorio("Directorio Vacio En Archivo Comprimido");
            Elemento d6 = new Directorio("Directorio Con Directorio Anidado");
            Elemento d7 = new Directorio("Directorio Con Archivo Comprimido Complejo");

            //Archivos
            Elemento a1 = new Archivo("foto001.jpg", 50);
            Elemento a2 = new Archivo("foto002.jpg", 50);
            Elemento a3 = new Archivo("foto003.jpg", 50);
            Elemento a4 = new Archivo("foto004.jpg", 50);
            Elemento a5 = new Archivo("foto005.jpg", 50);
            Elemento a6 = new Archivo("foto006.jpg", 50);
            Elemento a7 = new Archivo("foto007.jpg", 50);
            Elemento a8 = new Archivo("foto008.jpg", 50);

            //Archivos comprimidos
            Elemento ac1 = new ArchivoComprimido("ccSimple.zip");
            Elemento ac2 = new ArchivoComprimido("ccComplejo.zip");
            Elemento ac3 = new ArchivoComprimido("ccAnidada.zip");

            //Enlaces directos
            Elemento ed1 = new EnlaceDirecto(a1);
            Elemento ed2 = new EnlaceDirecto(a1);
            Elemento ed3 = new EnlaceDirecto(d2);
            Elemento ed4 = new EnlaceDirecto(ac1);

            //Añadir elementos a los directorios
            d1.add(d2);
            d1.add(d3);
            d3.add(a1);
            d1.add(d4);
            d4.add(a2);
            d4.add(ed1);
            d4.add(ac1);
            d1.add(d6);
            d6.add(a4);
            d6.add(ed4);
            d6.add(ed3);
            d6.add(d7);
            d7.add(a5);
            d7.add(a6);
            d7.add(ac2);

            //Añadir elementos a los archivos comprimidos
            ac1.add(d5);
            ac1.add(a3);
            ac1.add(ed2);
            ac2.add(ac3);
            ac3.add(a7);
            ac2.add(a8);

            IVisitor v1 = new ImpresionExtendida();
            IVisitor v2 = new ImpresionCompacta();
            Console.Out.Write("Impresión extendida del sistema de ficheros:\n\n");
            Console.Out.Write(d1.accept(v1));
            Console.Out.Write("\n\n--------------------------------------------------\n\n");
            Console.Out.Write("Impresión compacta del sistema de ficheros:\n\n");
            Console.Out.Write(d1.accept(v2));
            Console.In.Read();
        }