directory.GetFiles, как мне заставить его выплевывать элементы, когда он их находит?

Я использую Directory.GetFiles , чтобы передать мне mp3-файлы, и я хотел бы чтобы заполнить ListBox результатами, но вместо того, чтобы останавливать программу во время выполнения метода, могу ли я заставить ее выполнять поиск и заполнять ListBox по мере получения файлов mp3 ?

поэтому я использую следующее (и он не может добавить их по одному, он добавляет их все сразу, когда это будет сделано)

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

Я добавил _AddMP3ToListbox = AddMP3ToListbox

он действительно добавляет mp3 в список, но делает это сразу, а не сразу, как находит. как я могу это исправить?

5
задан darthwillard 30 May 2011 в 00:42
поделиться