私はDirectory.GetFiles
を使って私にmp3ファイルを与えています。ListBox
に結果を記入したいのですが、メソッドを実行中にプログラムを停止する代わりに、ListBox
を検索して入力してくださいそれはmp3ファイルを取得するように?directory.GetFiles、どのように見つけてアイテムを吐き出すのですか?
ので、私は何を使っていることは、次の通りである(そしてそれらを一度に1つずつを追加するために失敗している、それが行われたときには、一度にすべてを追加している)
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を実際にリストボックスに追加しますが、見つけたらすぐにすべてを一度に行います。どうすればこの問題を解決できますか?
クールで、彼らがEnumerateFilesを追加したことはわかりませんでした。 –
はい。私は最近まで知らなかった。それもSilverlightにあります。物事を非同期化するためには間違いなく便利です。 – Tim
リストボックスに出力するサンプルコードをC#で教えてもらえますか?私はそれを試して、私はGetFilesより遅い時間を得ています – darthwillard