1

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

我试过了:

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

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

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

谢谢!

4

2 回答 2

2

您可以使用 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

于 2013-07-15T06:36:00.423 回答
1

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

  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");
}
于 2013-07-15T09:12:09.723 回答