estoy usando Directory.GetFiles
para darme archivos mp3, y me gustaría llenar un ListBox
con los resultados, pero en lugar de detener el programa mientras pasa por el método, ¿puedo obtenerlo para buscar y llenar el ListBox
hasta como obtiene los archivos mp3?directory.GetFiles, ¿cómo hago para escupir elementos como los encuentra?
Así que lo que estoy usando es el siguiente (y que está fallando para agregarlos uno en en el tiempo, que es la adición de todos a la vez cuando se hace)
private List<string> Getmp3sFromFolders(string folder)
{
List<string> fileArray = new List<string>();
try
{
DirectoryInfo dir = new DirectoryInfo(folder);
var files = dir.EnumerateFiles("*.mp3");
foreach (var file in files)
{
fileArray.Add(file.FullName);
Dispatcher.BeginInvoke(_AddMP3ToListbox, file.Name);
}
var directories = dir.EnumerateDirectories();
foreach (var subdir in directories)
{
fileArray.AddRange(Getmp3sFromFolders(subdir.FullName));
}
// lblFolderSearching.Content = folder.ToString();
}
catch
{
}
return fileArray;
}
Añadí _AddMP3ToListbox = AddMP3ToListbox
sí agrega los mp3 al cuadro de lista, pero lo hace todo a la vez, no tan pronto como lo encuentra. ¿Cómo puedo arreglar esto?
Genial, no sabía que habían agregado EnumerateFiles. –
Sí. No sabía hasta hace poco tampoco. También está en Silverlight. Definitivamente útil para hacer cosas asincrónicas. – Tim
¿me puede dar un código de muestra en C# que da salida a un listbox? Lo intenté y estoy recibiendo tiempos más lentos que con GetFiles – darthwillard