我想要使用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