我正在使用C#和XAML开发metro应用程序,我们都知道我们可以使用下面的代码搜索音乐库中的音乐文件。
IReadOnlyList<IStorageItem> itemsList = await KnownFolders.MusicLibrary.GetItemsAsync();
如D:
,E:
等其他驱动器(分区)中的音乐文件怎么样?有没有办法在其他驱动器中搜索音乐文件?
简要说明:我想从我的硬盘驱动器中搜索.mp3
个文件并在Gridview中显示它们,有没有有效的方法来实现这一目标?请帮帮我。
答案 0 :(得分:0)
Windows应用商店应用仅限于在应用的KnownFolders或LocalFolder中进行搜索,因此您无法在其他驱动器中进行搜索
答案 1 :(得分:0)
可以在其他文件夹或驱动器中搜索,但需要使用FolderPicker来选择StorageFolder ......
async Task<IEnumerable<StorageFile>> FindMusicFiles()
{
var folderPicker = new FolderPicker()
{
CommitButtonText = "Yippie!",
SuggestedStartLocation = PickerLocationId.ComputerFolder,
ViewMode = PickerViewMode.List
};
folderPicker.FileTypeFilter.Add("*");
StorageFolder folder = await folderPicker.PickSingleFolderAsync();
if (folder != null)
{
StorageFileQueryResult queryResult = folder.CreateFileQuery();
queryResult.ApplyNewQueryOptions(new QueryOptions(CommonFileQuery.OrderByName, new[] { ".mp3" }));
IReadOnlyList<StorageFile> files = await queryResult.GetFilesAsync();
return files;
}
return new StorageFile[] { };
}
答案 2 :(得分:0)
应用程序也可以记住您使用FolderPicker选择的文件夹,请参阅Windows 8 App and access to file system上的帖子,其中我已经解释了如何使用FutureAccessList ......