我想要使用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 - SubFile1.mp3 +子文件夹2 - SubFile2.mp3 - MyFile.mp3 - MyFile2 .mp3 基本上要获取每个文件包含子文件夹文件,然后运行一个foreach?这不是太重要,但肯定会很好:) 再次感谢:) – user3733885
这就是你正在进入递归的其他故事。作为一个提示,你需要看看“folder.GetFoldersAsync()”。 –
非常感谢,我会仔细研究一下,就像我说那不是优先事项,我的主要任务是通过选择文件或文件夹来抓取一堆文件,所以我现在很开心,我可以继续与我的应用程序现在:D – user3733885