有没有办法验证所有内容文件是否仍然存在?

时间:2014-04-23 18:23:41

标签: c# wpf

我有一个WPF应用程序,它使用太多图像和视频将Build Action设置为Resource,所以我改用了Content。有没有办法可以动态搜索应用程序编译的文件,以便我可以验证运行时计算机上是否仍然存在所有文件?我不想写一个文件列表,在添加,删除或重命名内容文件时我必须不断更新。谢谢!

1 个答案:

答案 0 :(得分:1)

为了在运行时中找到所谓的松散内容文件,您应该使用Reflection并查找 AssemblyAssociatedContentFileAttribute 属性的实例。在使用 Build Action = Content 的每个文件的WPF应用程序的构建过程中自动添加此属性。

总而言之,您可以通过以下方式验证应用程序启动期间目标计算机上是否存在文件:

public App()
{
    var a = Assembly.GetExecutingAssembly();
    var attributes = a.GetCustomAttributes<AssemblyAssociatedContentFileAttribute>();
    foreach (var attr in attributes)
    {
        var path = attr.RelativeContentFilePath;
        //Verify if a given path exists
        ...
    }
}