动态搜索项目文件夹中的文件

本文关键字:文件 文件夹 项目文件 搜索 项目 动态 | 更新日期: 2023-09-27 18:22:15

在我的Windows应用商店项目中,我的Assets文件夹中有一些.jpg文件。如何从该文件夹中动态获取所有.jpg文件?

我试过:

StorageFolder folder = await StorageFolder.GetFolderFromPathAsync("ms-appx:///Assets/");
var fileList = await folder.GetFilesAsync(CommonFileQuery.DefaultQuery);

必须以某种方式这样工作(使用不同的CommonFileQuery),但这对我不起作用。(第1行的系统异常-路径名错误)。

第二个问题:如何测试Assets文件夹是否包含"movie.mp4"?

谢谢!

动态搜索项目文件夹中的文件

您可以使用Directory.EnumerateFiles(sourceDirectory,"*.jpg",SearchOption.AllDirectories);

问题2:

您可以使用File.Exists(filePath);


编辑根据你的评论,我发现它使用GetFileFromApplicationUriAsync而不是GetFolderFromPathAsync

StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
var files = installedLocation.GetFolderFromPathAsync("Assets");

Q2看起来你可以使用

TryGetItemAsync

这是我的场景的完整解决方案:

  1. 获取特定文件类型的项目文件夹中的文件
  2. 检查项目文件夹中是否存在文件

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");
}