[英]UWP C# Getting All Files From Selected Folder
我正在嘗試使用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文件
有人知道我在做什么錯嗎?
提前致謝
似乎是CommonFileQuery.OrderByDate的已知問題。 顯然,您只能將CommonFileQuery.OrderByDate與KnownFolders枚舉中的文件夾一起使用。 如果我將您的代碼更改為使用CommonFileQuery.DefaultQuery,則它可以工作。
如果它們沒有按日期順序返回,則可以按如下所示使用OrderBy:
foreach (StorageFile item in sortedFiles.OrderBy(a => a.DateCreated))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.