用什么来select多个文件(媒体文件),并在自定义/所需索引的StorageFile集合中检索它们?

我有一个列表,我检索多个MP3文件。 现在,当我想再次添加文件时,我从picker中select文件,但它们覆盖了IReadOnlyList文件列表中的以前的文件

我想如果我再select文件…那么他们应该去filesList的下一个索引

例如:我第一次select3个文件,他们去filesList [0],filesList [1],filesList [2]。 现在我再次点击addmusicbtnselect文件,我挑选2个文件。 现在我想要的是获得filesList [3]和filesList [4]这些文件。 但IReadOnlyList不允许这样做,它开始从索引0存储

我也试过IList,但它不能与文件选取器一起工作

IReadOnlyList<StorageFile> fileList; private async void addmusicbtn_Click(object sender, RoutedEventArgs e) { var fop = new FileOpenPicker(); fop.FileTypeFilter.Add(".mp3"); fop.FileTypeFilter.Add(".mp4"); fop.FileTypeFilter.Add(".avi"); fop.FileTypeFilter.Add(".wmv"); fop.ViewMode = PickerViewMode.List; fileList = await fop.PickMultipleFilesAsync(); foreach (StorageFile file in fileList) { mlist.Items.Add(file.Name); stream = await file.OpenAsync(FileAccessMode.Read); } mediafile.SetSource(stream, file.ContentType); mediafile.Play(); } 

Solutions Collecting From Web of "用什么来select多个文件(媒体文件),并在自定义/所需索引的StorageFile集合中检索它们?"

PickMultipleFilesAsync将返回在该实例中选取的文件。 如果你想把它们添加到先前选择的文件列表中,然后将它们添加到一个单独的列表中,类似于你将它们添加到mlist(但是保存StorageFile而不是路径,StorageFile更有用)。

这里是你的代码的修改版本,它保持累积的fileList:

 List<StorageFile> fileList; // don't forget to initialize this somewhere! private async void addmusicbtn_Click(object sender, RoutedEventArgs e) { var fop = new FileOpenPicker(); fop.FileTypeFilter.Add(".mp3"); fop.FileTypeFilter.Add(".mp4"); fop.FileTypeFilter.Add(".avi"); fop.FileTypeFilter.Add(".wmv"); fop.ViewMode = PickerViewMode.List; IReadOnlyList<StorageFile> pickedFileList; pickedFileList= await fop.PickMultipleFilesAsync(); // add the picked files to our existing list fileList.AddRange(pickedFileList); // I'm not sure if you want fileList or pickedFileList here: foreach (StorageFile file in fileList) { mlist.Items.Add(file.Name); stream = await file.OpenAsync(FileAccessMode.Read); mediafile.SetSource(stream, file.ContentType); } mediafile.Play(); }