Пример #1
0
        private void vistaArchivos_AfterSelect(object sender, TreeViewEventArgs e)
        {
            lblErrores.Text = "";
            grpErrores.Hide();
            grpPerm.Hide();
            muestraTexto.Text = "";
            muestraTexto.Enabled = false;
            int n;
            directorio dirProcesado = new directorio();

            if (int.TryParse(e.Node.Name,out n) == true)
            {
                /*
                 ¿Es un archivo?
                 */
                if (n < SeparadorEjecutables)
                {
                    archivo miFile = miProyecto.vectorArchivos[n];
                    string archivo = miFile.rutadisco;
                    try
                    {
                        permList.Items.Clear();

                        foreach (Entorno ent in miProyecto.PerfilUtilizado.entornos)
                        {
                            string[] vals = new string[4];
                            vals[0] = ent.Nombre();
                            vals[1]=ent.getUsuarioMapeado(miFile.owner);
                            vals[2] = ent.getGrupoMapeado(miFile.grupo);
                            vals[3] =  miFile.permisos;
                            ListViewItem ni = new ListViewItem(vals);
                            permList.Items.Add(ni);
                        }

                        lblErrores.Text="";
                        grpPerm.Show();

                        if (miFile.winEnters)
                        {
                            lblErrores.Text += "Cuidado: El archivo tiene enters de Windows.\n";
                            grpErrores.Show();
                        }
                        if (miFile.BOM)
                        {
                            lblErrores.Text += "Cuidado: El archivo tiene Byte Order Mark (BOM)";
                            grpErrores.Show();
                        }

                        System.IO.TextReader lector = new System.IO.StreamReader(archivo);

                        string S = lector.ReadLine();
                        while (S != null)
                        {
                            muestraTexto.AppendText(S + '\n');
                            S = lector.ReadLine();
                        }

                        lector.Close();
                        muestraTexto.Enabled = true;
                    }
                    catch (System.IO.IOException)
                    {
                        lblErrores.Text = "No puede abrir el archivo " + archivo + " - Puede que este no exista o este abierto en otro programa.";
                        grpErrores.Show();
                    }
                }
                /*
                 ¿Es un ejecutable?
                 */
                else if (n >= SeparadorEjecutables)
                {
                    archivo ejecutable = miProyecto.vectorEjecutables[n - SeparadorEjecutables];
                    string archivo = ejecutable.rutadisco;
                    try
                    {
                        if (ejecutable.winEnters)
                        {
                            lblErrores.Text = "Cuidado: El archivo tiene enters de Windows.";
                            grpErrores.Show();
                        }

                        FileInfo f = new FileInfo(archivo);

                        if (f.Length > MaxSize)
                        {
                            muestraTexto.AppendText("El archivo supera los 100Kb, no se mostrara en esta aplicacion");
                        }
                        else
                        {

                            System.IO.TextReader lector = new System.IO.StreamReader(archivo);

                            string S = lector.ReadLine();
                            while (S != null)
                            {
                                muestraTexto.AppendText(S + '\n');
                                S = lector.ReadLine();
                            }

                            lector.Close();
                        }
                        muestraTexto.Enabled = true;
                    }
                    catch (System.IO.IOException)
                    {
                        lblErrores.Text = "No puede abrir el archivo " + archivo + " - Puede que este no exista o este abierto en otro programa.";
                        grpErrores.Show();
                    }
                }
            }
            /*
             ¿Es un directorio a crear?
             */
            else if (miProyecto.getDirectorioPorRuta(e.Node.Name, out dirProcesado))
            {
                permList.Items.Clear();

                foreach (Entorno ent in miProyecto.PerfilUtilizado.entornos)
                {
                    string[] vals = new string[4];
                    vals[0] = ent.Nombre();
                    vals[1] = ent.getUsuarioMapeado(dirProcesado.owner);
                    vals[2] = ent.getGrupoMapeado(dirProcesado.grupo);
                    vals[3] = dirProcesado.permisos;
                    ListViewItem ni = new ListViewItem(vals);
                    permList.Items.Add(ni);
                }
                grpPerm.Show();
            }
            /*
             ¿Es un directorio preexistente?
             */
            else
            {
                /* Por ahora no hacemos nada */
            }
        }
Пример #2
0
 public bool getDirectorioPorRuta(string ruta, out directorio resultado)
 {
     for (int i = 0; i < vectorDirectorios.Count; i++)
     {
         if (vectorDirectorios[i].ruta == ruta)
         {
             resultado = vectorDirectorios[i];
             return true;
         }
     }
     resultado = new directorio();
     return false;
 }