none
通过FolderPicker选择文件夹并通过FileInformationFactory查询文件,在对FileInformationFactory的GetFilesAsync()的结果遍历获取FileInformation的MusicProperties时异常,提示System.NullReferenceException: Object reference not set to an instance of an object. RRS feed

  • 问题

  •  var folderPicker = new Windows.Storage.Pickers.FolderPicker();
                folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
                folderPicker.FileTypeFilter.Add("*");
                Windows.Storage.StorageFolder musicFolder = await folderPicker.PickSingleFolderAsync();
                if (musicFolder != null)
                {
                    var queryOptions = new Windows.Storage.Search.QueryOptions()
                    {
                        FolderDepth = Windows.Storage.Search.FolderDepth.Deep,
                        IndexerOption = Windows.Storage.Search.IndexerOption.UseIndexerWhenAvailable
                    };
                    var musicType = new List<string>() { ".mp3", ".wma", ".wav", ".flac" };
                    foreach (var type in musicType)
                    {
                        queryOptions.FileTypeFilter.Add(type);
                    }
                    var musicQuery = musicFolder.CreateFileQueryWithOptions(queryOptions);
                    var fileInformationFactory = new FileInformationFactory(musicQuery, ThumbnailMode.MusicView);
                    var files = await fileInformationFactory.GetFilesAsync();
                    foreach(var file in files)
                    {
                        var title = file.MusicProperties.Title;  //异常               
                    }
                }
    2018年1月3日 6:46

答案

全部回复

  • 你好

    我运行了你的代码,没有异常提示。

    如果是 var title = file.MusicProperties.Title; 这行代码出错,可以在可以断点,看看 file 都有哪些信息,贴出来一起看一下。

    另外,你的 UWP App 的目标版本和最低版本分别是多少?我的测试环境分别是 15063 和 10586.


    希望我的答案能帮助更多的人。
    博客地址: http://www.cnblogs.com/shaomeng

    2018年1月3日 7:35
    版主
  • 感谢你的答复!

    我的APP的目标版本和最低版本都为16299,我在应用清单中选择了“音乐库”的功能,将“音乐库”文件夹作为目标文件夹

    var musicFolder =KnownFolders.MusicLibrary;则不会提示异常。

    2018年1月4日 2:01
  • 当我进行调试的时候,监视到MusicProperties不为NULL并且MusicProperties.Title是有数据的,但依然提示异常
    2018年1月4日 2:06
  • ?????
    • 已标记为答案 SunYang1314 2018年1月4日 9:05
    • 已编辑 [-] 2018年1月11日 14:59
    2018年1月4日 8:00
  • 感谢答复!
    2018年1月4日 9:07