簡體   English   中英

UWP C#從所選文件夾中獲取所有文件

[英]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,則它可以工作。

https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/f99384d9-5460-4fd4-8c70-5694e1370432/a-exception-is-happen-when-calling-getfilesasync-with-parameter-of- commonfilequeryorderbydate?forum = wpdevelop

如果它們沒有按日期順序返回,則可以按如下所示使用OrderBy:

foreach (StorageFile item in sortedFiles.OrderBy(a => a.DateCreated))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM