2016-09-15 83 views
0

フォルダを選択しようとしたときにこのエラーが発生し、フォルダ内のすべての画像が表示されました。 私のコード:コンポーネントが見つかりません。 (HRESULTからの例外:0x88982F50)UWP

var folderPicker = new Windows.Storage.Pickers.FolderPicker(); 
      folderPicker.FileTypeFilter.Add(".jpg"); 
      var folder = await folderPicker.PickSingleFolderAsync(); 
      var filesList = await folder.GetFilesAsync(); 
      for (int i = 0; i < filesList.Count ; i++) 
      { 
       using (var stream = await filesList[i].OpenAsync(Windows.Storage.FileAccessMode.Read)) 
       { 
        var bitmapImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage(); 
        await bitmapImage.SetSourceAsync(stream); 
        Image m = new Image(); 
        m.Source = bitmapImage; 
        sp1.Children.Add(m); 
       } 

      } 

をフォルダが4枚のまたは5の画像がある場合には、作業を行いますが、それよりも私はこのエラーを取得します。どんな助け?

答えて

1

問題はおそらく、表示している画像の数ではありませんが、実際には画像ではないファイルを表示しようとしています。

".jpg"イメージのみにフィルタを適用しますが、このフィルタは、GetFilesAsyncメソッドが返すものではなく、フォルダピッカーダイアログに表示されるものにのみ適用されます。つまり、あなたのfilesListには、フォルダ内のすべてのファイルがイメージだけでなく含まれています。この問題を解決するには、まずCreateFileQueryWithOptionsの方法を使用してフィルタを作成できます。

var filesList = 
    await folder.CreateFileQueryWithOptions(
      new QueryOptions(CommonFileQuery.DefaultQuery, 
          new string[] {".jpg"}) 
     ).GetFilesAsync(); 

あなたはこのソリューションon my GitHubと私のサンプルアプリケーションを参照してみてください。

+0

完璧に作業しました!ありがとうございます<3 – user3159792

+0

あなたは歓迎です:-) –

関連する問題