在我的Windows商店项目中,我的Assets文件夹中有一些.jpg文件。如何动态获取该文件夹中的所有.jpg文件?
我试过了:
StorageFolder folder = await StorageFolder.GetFolderFromPathAsync("ms-appx:///Assets/");
var fileList = await folder.GetFilesAsync(CommonFileQuery.DefaultQuery);
必须以某种方式工作(使用不同的CommonFileQuery),但这对我不起作用。 (第1行的系统异常 - 错误的路径名称。)
第二个问题:如何测试我的Assets文件夹是否包含“movie.mp4”?
谢谢!
答案 0 :(得分:2)
您可以使用Directory.EnumerateFiles(sourceDirectory,“* .jpg”,SearchOption.AllDirectories);
问题2:
您可以使用File.Exists(filePath);
修改强>
根据您的评论,我发现this使用GetFileFromApplicationUriAsync
代替GetFolderFromPathAsync
或
StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
var files = installedLocation.GetFolderFromPathAsync("Assets");
Q2似乎可以使用
答案 1 :(得分:1)
这是我的方案的完整解决方案:
1:
StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder subFolder = await installedLocation.GetFolderAsync("Assets");
subFolder = await subFolder.GetFolderAsync("Images");
List<String> fileType = new List<String>();
fileType.Add(".jpg");
var queryOptions = new QueryOptions(CommonFileQuery.DefaultQuery, fileType);
var query = subFolder.CreateFileQueryWithOptions(queryOptions);
var fileList = await query.GetFilesAsync();
2:
try
{
var video = await subFolder.GetFileAsync("Video.mp4");
}
catch (FileNotFoundException)
{
Debug.WriteLine("No Video found");
}