private static async Task<IReadOnlyList<StorageFile>> GetMediaFromFolder(StorageFolder folder,
CommonFileQuery query)
{
IReadOnlyList<StorageFile> files = null;
StorageFileQueryResult fileQuery;
var queryOptions = new QueryOptions(query,
new List<string>
{
".3g2",
".3gp",
".3gp2",
".3gpp",
".amv",
".asf",
".avi",
".divx",
".drc",
".dv",
".f4v",
".flv",
".gvi",
".gxf",
".ismv",
".iso",
".m1v",
".m2v",
".m2t",
".m2ts",
".m3u8",
".mkv",
".mov",
".mp2",
".mp2v",
".mp4",
".mp4v",
".mpe",
".mpeg",
".mpeg1",
".mpeg2",
".mpeg4",
".mpg",
".mpv2",
".mts",
".mtv",
".mxf",
".mxg",
".nsv",
".nut",
".nuv",
".ogm",
".ogv",
".ogx",
".ps",
".rec",
".rm",
".rmvb",
".tob",
".ts",
".tts",
".vob",
".vro",
".webm",
".wm",
".wmv",
".wtv",
".xesc",
});
try
{
fileQuery = folder.CreateFileQueryWithOptions(queryOptions);
files = await fileQuery.GetFilesAsync();
}
catch (Exception ex)
{
Debug.WriteLine("exception listing files");
Debug.WriteLine(ex.ToString());
}
// DLNA folders don't support advanced file listings, us a basic file query
if (files == null)
{
fileQuery = folder.CreateFileQuery(CommonFileQuery.OrderByName);
files = await fileQuery.GetFilesAsync();
}
return files;
}
}