2017-04-23 11 views
0

UWPとC#を使用して、選択したフォルダ内のすべてのファイルのリストを取得しようとしています。私は、フォルダを選択したら、しかし、私は次のエラーを取得するUWP C#選択したフォルダからすべてのファイルを取得する

 var folderPicker = new FolderPicker(); 
     folderPicker.SuggestedStartLocation = PickerLocationId.Desktop; 
     folderPicker.FileTypeFilter.Add("*"); 

     StorageFolder folder = await folderPicker.PickSingleFolderAsync(); 

     List<string> fileTypeFilter = new List<string>(); 
     fileTypeFilter.Add(".mp3"); 
     fileTypeFilter.Add(".mp3"); 
     fileTypeFilter.Add(".wma"); 
     fileTypeFilter.Add(".wav"); 
     fileTypeFilter.Add(".ogg"); 
     fileTypeFilter.Add(".flac"); 
     fileTypeFilter.Add(".aiff"); 
     fileTypeFilter.Add(".aac"); 

     QueryOptions queryOptions = new QueryOptions(CommonFileQuery.OrderByDate, fileTypeFilter); 

     StorageFileQueryResult results = folder.CreateFileQueryWithOptions(queryOptions); 

     IReadOnlyList<StorageFile> sortedFiles = await results.GetFilesAsync(); 
     foreach (StorageFile item in sortedFiles) 
     { 
      AudioFilesLV.Items.Add(item.Path.ToString()); 
     } 

:私は、私は次のコードを持っているルートフォルダ

のサブフォルダを含む(フォルダを選択し、そのフォルダ内のすべてのオーディオファイルを表示する必要があります。

System.ArgumentException: 'Value does not fall within the expected range.' 

私が選択していたフォルダが約100 MP3ファイル

が含まれてい

誰もが私が間違ってやっているものを任意のアイデアを持っていますか?

ありがとうございます。

答えて

1

CommonFileQuery.OrderByDateの既知の問題であるようです。明らかに、CommonFileQuery.OrderByDateはKnownFolders列挙体のフォルダでのみ使用できます。 CommonFileQuery.DefaultQueryを使用するようにコードを変更すると動作します。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/f99384d9-5460-4fd4-8c70-5694e1370432/a-exception-is-happen-when-calling-getfilesasync-with-parameter-of-commonfilequeryorderbydate?forum=wpdevelop

彼らは日付順に戻って来ていない場合は、次のようにあなただけの[並べ替えを使用することができます。

foreach (StorageFile item in sortedFiles.OrderBy(a => a.DateCreated)) 
+0

アンドリュールートフォルダのための偉大な仕事に思われる、どうもありがとうございました。私はこのようなファイルをつかむだろうサブフォルダのリストをつかむことができますどのように任意のアイデア: +メインフォルダ +サブフォルダ1 - SubFile1.mp3 +サブフォルダ2 - SubFile2.mp3 - MyFile.mp3 - MyFile2 .mp3 基本的には、サブフォルダファイルを含むすべてのファイルを取得してforeachを実行しますか?これはあまり重要ではありませんが、確かに素敵です:) ありがとうもう一度:) – user3733885

+0

あなたが再帰に入っているように、それはまったくの話です。ヒントとして、 "folder.GetFoldersAsync()"を見る必要があります。 –

+0

恐ろしいことに、私はそれを見ていきます。私はそれが優先事項ではないと言っているように、私の主な優先事項は、ファイルやフォルダを選択することによってたくさんのファイルを取得することでした。今私のアプリで:D – user3733885

関連する問題