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 */ } }
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; }