gpt4 book ai didi

windows-8 - 在 WinRT 中检查项目中是否存在文件

转载 作者:行者123 更新时间:2023-12-03 14:35:01 25 4
gpt4 key购买 nike

我有一个 WinRT Metro 项目,它根据所选项目显示图像。但是,某些选定的图像将不存在。我希望能够做的是捕获它们不存在的情况并显示替代方案。

到目前为止,这是我的代码:

internal string GetMyImage(string imageDescription)
{
string myImage = string.Format("Assets/MyImages/{0}.jpg", imageDescription.Replace(" ", ""));

// Need to check here if the above asset actually exists

return myImage;
}

示例调用:

GetMyImage("First Picture");
GetMyImage("Second Picture");

所以 Assets/MyImages/SecondPicture.jpg存在,但 Assets/MyImages/FirstPicture.jpg没有。

起初我想到使用 WinRT 等效于 File.Exists() ,但似乎没有。不必去尝试打开文件并捕获错误的程度,我可以简单地检查文件是否存在,或者文件是否存在于项目中?

最佳答案

您可以使用 GetFilesAsync来自 here枚举现有文件。考虑到您有多个可能不存在的文件,这似乎是有道理的。

Gets a list of all files in the current folder and its sub-folders. Files are filtered and sorted based on the specified CommonFileQuery.



var folder = await StorageFolder.GetFolderFromPathAsync("Assets/MyImages/");
var files = await folder.GetFilesAsync(CommonFileQuery.OrderByName);
var file = files.FirstOrDefault(x => x.Name == "fileName");
if (file != null)
{
//do stuff
}

编辑:

正如@Filip Skakun 指出的那样,资源管理器有一个资源映射,您可以在该映射上调用 ContainsKey这也有利于检查合格资源(即本地化、缩放等)。

编辑 2:

Windows 8.1 引入了一种获取文件和文件夹的新方法:

var result = await ApplicationData.Current.LocalFolder.TryGetItemAsync("fileName") as IStorageFile;
if (result != null)
//file exists
else
//file doesn't exist

关于windows-8 - 在 WinRT 中检查项目中是否存在文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12121572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com