/// <summary>
        /// Método auxiliar que crea los componentes de la estructura de 
        /// archivos y almacena unos en otros, creando una estructura
        /// anidada.
        /// </summary>
        /// <returns></returns>
        private static Directorio creaComponentes()
        {
            // Creamos los elementos de la estructura
            Directorio raiz = new Directorio("Raiz");
            Directorio vacio = new Directorio("Directorio Vacio");
            Directorio unico = new Directorio("Directorio Con Archivo Unico");
            Directorio comprimidoSimple = new Directorio("Directorio Con Archivo Comprimido Simple");
            Directorio anidado = new Directorio("Directorio con Directorio Anidado");
            Directorio complejo = new Directorio("Directorio con Archivo Comprimido Complejo");
            Directorio vacio2 = new Directorio("Directorio Vacio En Archivo Comprimido");

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

            ArchivoComprimido ac1 = new ArchivoComprimido("ccSimple.zip");
            ArchivoComprimido ac2 = new ArchivoComprimido("ccComplejo.zip");
            ArchivoComprimido ac3 = new ArchivoComprimido("ccAnidada.zip");

            EnlaceDirecto e1 = new EnlaceDirecto(a1);
            EnlaceDirecto e2 = new EnlaceDirecto(ac1);
            EnlaceDirecto e3 = new EnlaceDirecto(vacio);

            // Creamos la estructura
            ac3.añadeArchivo(a7);
            ac2.añadeArchivo(ac3);
            ac2.añadeArchivo(a8);

            complejo.añadeElemento(a5);
            complejo.añadeElemento(a6);
            complejo.añadeElemento(ac2);

            anidado.añadeElemento(a4);
            anidado.añadeElemento(e2);
            anidado.añadeElemento(e3);
            anidado.añadeElemento(complejo);

            ac1.añadeArchivo(vacio2);
            ac1.añadeArchivo(a3);
            ac1.añadeArchivo(e1);

            comprimidoSimple.añadeElemento(a2);
            comprimidoSimple.añadeElemento(e1);
            comprimidoSimple.añadeElemento(ac1);

            unico.añadeElemento(a1);

            raiz.añadeElemento(vacio);
            raiz.añadeElemento(unico);
            raiz.añadeElemento(comprimidoSimple);
            raiz.añadeElemento(anidado);

            // Retornamos el directorio raíz
            return raiz;
        }
Ejemplo n.º 2
0
        public string printArchivo(Archivo a)
        {
            String result = null;

            this.Contador++;
            string space = printTabulaciones();

            this.Contador--;
            if (to == null)
            {
                result = space + "f " + a.Nombre + System.Environment.NewLine;
            }
            else
            {
                result = space + "f " + To.muestraNombre(a.Nombre) + System.Environment.NewLine;
            }
            return(result);
        }
 /// <summary>
 /// Función que declara una operación de visita para los 
 /// objetos de tipo archivo. Retorna un String con
 /// su nombre
 /// </summary>
 /// <param name="a"></param>
 /// <returns></returns>
 public override String formatoArchivo(Archivo a)
 {
     return a.Nombre.ToString();
 }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            //d Raiz
            //  d Directorio Vacio
            //  d Directorio Con Archivo Unico
            //      f foto001.jpg
            //  d Directorio Con Archivo Comprimido Simple
            //      f foto002.jpg
            //      e foto001.jpg
            //      c ccSimple.zip
            //          d Directorio Vacio En Archivo Comprimido
            //          f foto003.jpg
            //          e foto001.jpg
            //  d Directorio con Directorio Anidado
            //      f foto004.jpg
            //      e ccSimple.zip
            //      e Directorio Vacio
            //      d Directorio con Archivo Comprimido Complejo
            //          f foto005
            //          f foto006
            //          c ccComplejo.zip
            //              c ccAnidada.zip
            //                  f foto007.jpg
            //              f foto008.jpg

            /*
             * Directorio draiz = new Directorio("Raíz ñññ");
             *
             * TipoOrtografiaStr to = new CatalanaStr();
             * Impresora i = new ImpresoraCompacta(to);
             * Console.WriteLine(draiz.acceptImpresora(i));
             *
             * Console.ReadLine();
             */
            Directorio draiz = new Directorio("Raiz");
            Directorio duno  = new Directorio("Directorio Vacio");
            Directorio ddos  = new Directorio("Directorio Con Archivo Unico");

            draiz.Elementos.Add(duno);
            draiz.Elementos.Add(ddos);

            Archivo funo = new Archivo("foto001.jpg", 10.0);

            ddos.Elementos.Add(funo);

            Directorio dtres = new Directorio("ññññ áááá Con Archivo Comprimido Simple");

            draiz.Elementos.Add(dtres);
            Archivo    fdos = new Archivo("foto002.jpg", 20.0);
            Enlace     euno = new Enlace(funo);
            Comprimido cuno = new Comprimido("ccSimple.zip");

            dtres.Elementos.Add(fdos);
            dtres.Elementos.Add(euno);
            dtres.Elementos.Add(cuno);

            Directorio dcuatro = new Directorio("Directorio Vacio En Archivo Comprimido");
            Archivo    ftres   = new Archivo("foto003.jpg", 30.0);
            Enlace     edos    = new Enlace(funo);

            cuno.EltosComp.Add(dcuatro);
            cuno.EltosComp.Add(ftres);
            cuno.EltosComp.Add(edos);

            Directorio dcinco = new Directorio("Directorio con Directorio Anidado");

            draiz.Elementos.Add(dcinco);
            Archivo    fcuatro = new Archivo("foto004.jpg", 30.0);
            Enlace     etres   = new Enlace(cuno);
            Enlace     ecuatro = new Enlace(duno);
            Directorio dseis   = new Directorio("Directorio con Archivo Comprimido Complejo");

            dcinco.Elementos.Add(fcuatro);
            dcinco.Elementos.Add(etres);
            dcinco.Elementos.Add(ecuatro);
            dcinco.Elementos.Add(dseis);

            Archivo    fcinco = new Archivo("foto005.jpg", 30.0);
            Archivo    fseis  = new Archivo("foto006.jpg", 30.0);
            Comprimido cdos   = new Comprimido("ccComplejo.zip");

            dseis.Elementos.Add(fcinco);
            dseis.Elementos.Add(fseis);
            dseis.Elementos.Add(cdos);

            Comprimido ctres  = new Comprimido("ccAnidada.zip");
            Archivo    fsiete = new Archivo("foto00.jpg", 30.0);
            Archivo    focho  = new Archivo("foto008.jpg", 30.0);

            ctres.EltosComp.Add(fsiete);
            cdos.EltosComp.Add(ctres);
            cdos.EltosComp.Add(focho);


            BasicaFactory.init();
            BotonMagico.print(draiz);
            EstandarFactory.init();
            BotonMagico.print(draiz);
            ExtendidaGallegaFactory.init();
            BotonMagico.print(draiz);
            ExtendidaCatalanaFactory.init();
            BotonMagico.print(draiz);

            Console.WriteLine("Sitema archivos en abierta");
            AbiertaFactory.init();
            ImpresoraFactory afac = AbiertaFactory.getInstance();

            afac.setProtoType(new YourOcreStr());
            BotonMagico.print(draiz);



            Console.ReadLine();
        }
Ejemplo n.º 5
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();
        }
Ejemplo n.º 6
0
 public string imprime(Archivo a)
 {
     return tabulaciones() + a.Nombre + "\n";
 }
 /// <summary>
 /// Función que declara una operación de visita para los 
 /// objetos de tipo archivo.
 /// </summary>
 /// <param name="a"></param>
 /// <returns></returns>
 public abstract String formatoArchivo(Archivo a);