我尝试从某个路径获取图片,但该路径只能从应用程序的当前文件夹中引用,而不能从 Local C:驱动器中引用。
我的理由是因为应用程序即将发布,我无法将图像引用到当前PC上的同一本地位置,因为该应用程序将用于很多其他应用程序PC和路径不适用于其他人的计算机。
这是当前有效的路径:
SetDefaultImage(new Binary(File.ReadAllBytes("C:\\Users\\mclaasse\\Desktop\\Haze Update\\Haze\\Haze\\Icons\\user6.jpg")));
这就是我需要它的方式:
SetDefaultImage(new Binary(File.ReadAllBytes("Haze\\Icons\\user6.jpg")));
但是我得到了错误:
无法找到路径的一部分' C:\ Haze \ Icons \ user6.jpg'。
是否有一个简单的工作方式让我的工作路线?
答案 0 :(得分:2)
不确定这是否正是您所需要的,但前提是您的Visual Studio项目中的图像文件user6.jpg
位于名为Images
的项目文件夹中,Build Action
为图片文件设置为Resource
,您只需从Resource File Pack URI:
var image = new BitmapImage(new Uri("pack://application:,,,/Images/user6.jpg"));
答案 1 :(得分:0)
这些参考文献都没有为我工作(我不知道为什么),但这有效:
string directory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
string filePath = Path.Combine(directory, "Icons\\user6.jpg");
然后检查您要查找的文件是否存在:
if (!File.Exists(filePath))
{
MessageBox.Show("The default image does not exist", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
...
}