Foros del Web » Programación para mayores de 30 ;) » .NET »

Leer contenido de carpetas

Estas en el tema de Leer contenido de carpetas en el foro de .NET en Foros del Web. Hola me gustaria saber si hay alguna forma de que leyendo el contenido de las carpetas me muestre 2 tipos de archios?? Por ahora solo ...
  #1 (permalink)  
Antiguo 09/06/2005, 09:06
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Leer contenido de carpetas

Hola me gustaria saber si hay alguna forma de que leyendo el contenido de las carpetas me muestre 2 tipos de archios??

Por ahora solo me muestra uno asi:
dirInfo.GetFiles("*.pdf");

y me gustaria que tambien me mostrara los .htm

gracias
  #2 (permalink)  
Antiguo 09/06/2005, 11:23
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
Dim a As System.IO.Directory
Dim archivos As Array = a.GetFiles(path)
dim i as integer = 0
while i < archivos.length
if archivos(i).EndsWith("*.pdf") or archivos(i).EndsWith("*.htm") then
'Aqui lo que quieras
end if
i+=1
end while
  #3 (permalink)  
Antiguo 10/06/2005, 02:12
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
No consigo ke funcione

Estoy intentando hacer lo que me has puesto pero como intento que salga en un datagrid el listado de archivos pues no lo consigo.

e echo esto:

DirectoryInfo dirInfo = new DirectoryInfo(Server.MapPath("")+"\\Clientes\\"+se rvicio["Nombre"].ToString()+"\\"+TipoServicio+"\\"+SelecNombreServ icio+"\\"+SelecNombreCarpeta);
string []archivos = dirInfo.GetFiles().ToString().Split(Convert.ToChar ("."));

pero no me inserta los nombres de los archivos sino SystemIOFileInfo[]SystemIOFileInfo[]SystemIOFileInfo[] .
  #4 (permalink)  
Antiguo 10/06/2005, 02:20
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
porque no es lo mismo que te he puesto yo:

System.IO.Directory dir;
string [] archivos = a.GetFiles(path);


date cuenta, que utilizo el objeto directory y su función getFiles, no directoryinfo
  #5 (permalink)  
Antiguo 10/06/2005, 02:41
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Y para meterlo todo en un datagrid??? Ya consigo que salgan solo los que quiero pero como hago para que me lo inserte en un datagrid???
  #6 (permalink)  
Antiguo 10/06/2005, 02:49
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
Pues creo que simplemente con que le pongas al datagrid como datasource tu array, bastaría, pero no estoy seguro (yo no uso nunca datagrids), pero si no te vale, puedes meterlo a un datatable (me refiero al array) y luego al datagrid
  #7 (permalink)  
Antiguo 10/06/2005, 03:16
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Pero si no me equivoco el array esta relleno de todos los archivos del directorio. Deberia crear otro array y rellenarlo de los nuevos valores???

Como podria ir rellenando el nuevo array???


gracie
  #8 (permalink)  
Antiguo 10/06/2005, 03:36
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
efectivamente

System.IO.Directory dir;
string [] archivos = a.GetFiles(path);
ArrayList imprimibles = new ArrayList;
int i = 0;
while (i<imprimibles.Length)
{
if (archivos[i].toString().EndsWith("*.pdf") || archivos[i].toString().EndsWith("*.htm"))
{
imprimibles.Add(archivos[i]);
}
i++;
}
  #9 (permalink)  
Antiguo 10/06/2005, 04:35
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Perfecto

Eso funciona bien pero y si quiero meterle mas propiedades como lo tenia antes?? Es que antes cargaba el datagrid con el directoryinfo y me mostraba tb la fecha de modificacion del archivo y el tamaño. Se puede sacar tb eso????
  #10 (permalink)  
Antiguo 10/06/2005, 05:01
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
ah bueno, claro, para ello puedes utilizar un datatable

y en vez de meterlo en un arraylist (suponemos que dt es el datatable y fila un datarow con las columnas definidas, ok???

(te lo pongo en VB)

Código PHP:
dim dir as System.IO.Directory 
dim archivos 
as array = a.GetFiles(path);

dim i as integer0;
while 
i<imprimibles.Length

if archivo(0).tostring.endwith(".pdf") or ..
fila ds.NewRow()
fila("nombre") = archivo(i)
fila("ultimafecha") = system.io.file.GetLastAccessTime(path archivo(i))
fila("creacion") = system.io.file.getCreationTime(path archivo(i))
...
ds.rows.add(fila)
end if
i+=1
end 
while 
Y luego al datagrid le pasas el datatable como datasource
  #11 (permalink)  
Antiguo 10/06/2005, 05:36
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
error de path

Me da error en el path y lo tengo asi:

string path=Server.MapPath("")+"\\Clientes\\"+servicio["Nombre"].ToString()+"\\"+TipoServicio+"\\"+SelecNombreServ icio+"\\"+SelecNombreCarpeta;


donde esta el fallo????
  #12 (permalink)  
Antiguo 10/06/2005, 05:47
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
Que tipo de fallo
  #13 (permalink)  
Antiguo 10/06/2005, 06:01
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
eso esta solucionado gracias. Lo hice con el fileinfo al final.

Lo que intento ahora es que la columna del name sea un hypervinculo que me mande al archivo si lo pincho.

mi codigo es este:
//Response.Write("<br>");
if (archivos[j].EndsWith(".pdf") || archivos[j].EndsWith(".htm"))
{
//Add some rows
DataRow fila;
fila = dt.NewRow();
FileInfo info = new FileInfo(archivos[j]);
fila["Nombre"] = info.Name;
fila["Fecha de Modificacion"] = info.LastWriteTime;
fila["Tamaño"] = info.Length;
dt.Rows.Add(fila);
}
  #14 (permalink)  
Antiguo 10/06/2005, 06:16
Avatar de Nombela  
Fecha de Ingreso: abril-2005
Mensajes: 611
Antigüedad: 19 años, 1 mes
Puntos: 1
Ya esta me funciono todo

Muchas gracias por la ayuda.
  #15 (permalink)  
Antiguo 10/06/2005, 08:43
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
ok, me alegro,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:38.