sto usando Directory.GetFiles
per darmi i file mp3, e mi piacerebbe riempire un ListBox
con i risultati, ma invece di fermare il programma mentre passa attraverso il metodo, posso farlo cercare e riempire il ListBox
su come ottiene i file mp3?directory.GetFiles, come faccio a sputare gli oggetti mentre li trova?
Quindi quello che sto usando è la seguente (e non riesce a aggiungere uno alla al momento, è l'aggiunta di tutti in una volta quando è fatto)
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;
}
ho aggiunto _AddMP3ToListbox = AddMP3ToListbox
aggiunge effettivamente gli mp3 alla listbox, ma lo fa tutto in una volta, non appena lo trova. come posso risolvere questo?
Cool, non sapevo che avessero aggiunto EnumerateFiles. –
Sì. Non lo sapevo nemmeno fino a poco tempo fa. Anche in Silverlight. Decisamente utile per rendere le cose asincrone. – Tim
puoi darmi un codice di esempio in C# che viene esportato in una listbox? ho provato e sto diventando tempi più lenti rispetto a GetFiles – darthwillard