我正在研究这个.Net / WPF项目。
我正在尝试让方法在应用之前检查皮肤文件是否存在。我觉得我的地址格式化我错了......有什么想法吗?
Dim lobjSPEConfigService As SPEConfigurationService = New SPEConfigurationService
Dim lobjSkinFilePath As String = CStr(lobjSPEConfigService.GetApplicationSetting("SkinFileLocation", GetType(String)))
If String.IsNullOrEmpty(lobjSkinFilePath) Then
lobjSkinFilePath = "/SPE.Infrastructure.UI/Application/Resources/Skins/LightSkin"
Else
Dim lblnFileExist = File.Exists(lobjSkinFilePath)
If lblnFileExist = False Then
lobjSkinFilePath = "/SPE.Infrastructure/SPE.Infrastructure.UI/Application/Resources/Skins/LightSkin"
End If
End If
正在引用该项目的文件...
答案 0 :(得分:2)
如果您的文件名和路径正确(不确定我没有看到您的项目),那么我唯一看到的是文件扩展名。我假设它是.xaml
如果您要加载任何资源,则必须使用WPF Pack URI。
一些例子:
"pack://application:,,,/ResourceFile.xaml"
"pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml"
"/ResourceFile.xaml"
"/ReferencedAssembly;component/ResourceFile.xaml"
还要删除你的第一个else语句...如果你的文件名为空,你就不会做任何事情。
答案 1 :(得分:1)
File.Exists()
在磁盘上搜索。如果它返回False,则磁盘上不存在该文件。
File.Exists正在寻找取决于CStr(lobjSPEConfigService.GetApplicationSetting("SkinFileLocation", GetType(String)))
检查配置文件中的值。
确保路径确实存在且应用程序有足够的权限来访问/找到它。
修改强>
查找内部(装配)资源use the ResourceManager