C sharp - listBox no acepta una matriz

   
Vista:

listBox no acepta una matriz

Publicado por Ruth (7 intervenciones) el 04/07/2008 13:10:35
Estoy usando Visual C# .net 2005.
Mi problema es que despues de poner un listBox en el panel no me admite que le asigne una matriz que contiene el contenido de un directorio.
El codigo que utilizo es el siguiente:
DirectoryInfo di = new DirectoryInfo(".\"); // Referencia al directorio actual
FileInfo[] fiArr = di.GetFiles("*.txt"); // Asigno los ficheros .txt a la matriz fiArr
this.listBox1.Items.AddRange(fiArr); // Aqui pretendo asignar la matriz al listBox pero no quiere
El programa dice que "No se puede convertir implicitamente el tipo System.IO.FileInfo a string"
Gracias a los que me ayuden
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:listBox no acepta una matriz

Publicado por Yamil Bracho (1111 intervenciones) el 04/07/2008 16:35:15
El error te lo dice todo. fiArr es un arreglo de tipo FileInfo y no de String como espera AddRange. Puedes hace algo como:

FileInfo[] fiArr = di.GetFiles("*.txt"); // Asigno los ficheros .txt a la matriz fiArr
foreach( FileInfo fi in fiArr) {
this.listBox1.Items.Add(fi.FullName);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:listBox no acepta una matriz

Publicado por Ruth (7 intervenciones) el 04/07/2008 18:46:42
Hola Yamil, Gracias por tu respuesta pero esto sigue sin funcionar.
Como el programa no es muy largo, me atrevo a ponerlo por si lo quieres mirar.
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PruebaListBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(".\");
FileInfo[] fiArr = dir.GetFiles("*.txt"); // Asigno los ficheros .txt a la matriz fiArr
foreach (FileInfo fi in fiArr)
{
this.listBox1.Items.Add(fi.FullName);
}

}
}
}
Gracias anticipadas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:listBox no acepta una matriz

Publicado por Marvin Emilson Pineda (19 intervenciones) el 04/07/2008 20:54:16
hola!!!...

yo estoy aprendiendo C# aun no he hecho ejemplos con ListBox pero tomaria este como base... a ver si te funciona

reemplaza el fi.FullName por fi.Name

using System;
using System.IO;

public class GetFilesTest
{
public static void Main()
{
// Make a reference to a directory.
DirectoryInfo di = new DirectoryInfo("c:\");

// Get a reference to each file in that directory.
FileInfo[] fiArr = di.GetFiles();

// Display the names of the files.
foreach (FileInfo fri in fiArr)
Console.WriteLine(fri.Name);
}
}

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:listBox no acepta una matriz

Publicado por Marvin Emilson Pineda (19 intervenciones) el 04/07/2008 20:59:34
Tambien podrias reemplazar esto a ver si este tambien te este ocacionando el problema

DirectoryInfo di = new DirectoryInfo(".*.txt");
FileInfo[] fiArr = di.GetFiles();

o utilizar GetFiles(); sin argumentos para que te duelva todo...

Saludos,

Prueba, Error, Prueba, Error hasta encontrar la solución
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:listBox no acepta una matriz

Publicado por Yamil Bracho (1111 intervenciones) el 04/07/2008 21:38:34
Si quieres obtener la lista de los archivos que estan en el directorio actual usa

DirectoryInfo dir = new DirectoryInfo(".");

Puedes usar el debugger de .NET para ver que instrucciones se estan ejecutando...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:listBox no acepta una matriz

Publicado por Ruth (7 intervenciones) el 04/07/2008 22:12:25
Marvin, gracias por tu ayuda pero el codigo que tu me indicas es para salida en consola y lo que yo quiero es para salida en un listBox de .NET Visual 2005 C·
Yamil, en la segunda nota que he puesto en este sitio he puesto todo el codigo segun tus indicaciones y no va y lo que tu me contestas ahora para ver los archivos del directorio actual no me ayuda mucho.
El codigo que he puesto en mi segunda nota es muy cortito, ¿podria alguien mirarlo y decirme donde me equivoco?
Por favor, necesito ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:listBox no acepta una matriz

Publicado por Marvin emilson Pineda (19 intervenciones) el 04/07/2008 22:49:13
aki tienes el Link para que veas que es lo mismo ya sea en 2005 como 2008

http://msdn.microsoft.com/es-es/library/system.io.directoryinfo_members(VS.80).aspx

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: otra cosa

Publicado por Marvin emilson Pineda (19 intervenciones) el 04/07/2008 23:01:05
no depende del C# 2005 o 2008... depende del NetFramework ya que es kien define si se puede o no
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:listBox no acepta una matriz

Publicado por Marvin emilson Pineda (19 intervenciones) el 04/07/2008 22:44:21
mmmm... 2008 o 2005 es lo mismo... lo unico que tendrias que hacer en este caso es en lugar de usar el FullName Obtiene la ruta de acceso completa del directorio o el archivo. (Se hereda de FileSystemInfo).

usar Name que Obtiene el nombre de esta instancia de DirectoryInfo. (Invalida a FileSystemInfo..::.Name).

tu código quedaria haci...

DirectoryInfo dir = new DirectoryInfo(".");
FileInfo[] fiArr = dir.GetFiles("*.txt");
foreach(FileInfo fi in fiArr)
{
this.listBox1.Items.Add(fi.Name);
}

pruebalo.... si no lo pruebas no te daras cuenta si funciona, en escuestion de versiones se mejoran y aumentan las opciones pero si esta ya existe desde la 2005 no deberias de tener problema alguno o Utilizar FileInfo[] fiArr = dir.GetFile(); sin argumentos para que muestre todo asi te daras cuenta si funciona o no.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es que no hay nadie que me pueda ayudar?

Publicado por Ruth (7 intervenciones) el 05/07/2008 09:11:14
Por favor. Tan complicado es lo que pido?
Solo quiero mostrar en un listBox el contenido de un directorio. Nada mas.
Es que en este foro no hay nadie que sepa como?
Las ayudas "prueba esto" o "prueba lo otro" las agradezco pero hasta ahora no me han servido para nada.
El programa es muy cortito. Lo vuelvo a poner aqui para ver si alguien que REALMENTE SEPA COMO ARREGLARLO me lo diga.
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PruebaListBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(".\");
FileInfo[] fiArr = dir.GetFiles("*.txt"); // Asigno los ficheros .txt a la matriz fiArr
foreach (FileInfo fi in fiArr)
{
this.listBox1.Items.Add(fi.FullName);
}

}
}
}
Si nadie sabe como arreglarlo pero sabe de otros foros en los que pueda encontrar buena ayuda, le ruego me lo indique pues ya empiezo a estar cansada de no poder solucionar este problemita.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es que no hay nadie que me pueda ayudar?

Publicado por Marvin Emilson Pineda (1 intervención) el 06/07/2008 05:47:56
Oye...

acabo de probar el funcionamiento de lo que quieres hacer y funciona bien, aplicando el FullName y Name... funciona sin ningun problema... es posible que en el directorio que estas buscando no existan archivos .txt y por ende no lo llena... pero el codigo trabaja bien

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es que no hay nadie que me pueda ayudar?

Publicado por Ruth (7 intervenciones) el 06/07/2008 09:52:25
Os doy las gracias a Marvin y Yamil.
Efectivamente el problema que tenia es que solo queria ver archivos con la extension "*.txt" y no tenia ninguno. Lo he probado sin poner esta condicion, sino poniendo que presente todos los archivos "*.*" y funciona correctamente.
Repito muchas gracias por vuestra ayuda.
Ruth
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar