在我的基本目录中,我有一个图像文件夹。在这个文件夹中我只有一个图像,我想从中获取图像名称并将其加载到图像源。在这段代码中我收到一个错误:
无法找到文件' C:\ Users \ Santhosh \ Documents \ Visual Studio 2012 \ imagetest \ imagetest \ BIN \调试\ ImageFolder \ System.Linq.Enumerable + WhereSelectArrayIterator`2 [System.String,System.String] .JPG'
如何从基本目录中获取图像名称?
这是我的代码
string ImageFiles=Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory+"\\ImageFolder\\",".jpg").Select(System.IO.Path.GetFileName).ToString();
image1.source== new BitmapImage(new Uri(AppDomain.CurrentDomain.BaseDirectory + "\\ImageFolder\\"+ImageFiles+".jpg"));
答案 0 :(得分:1)
调用FirstOrDefault
从目录中获取第一个文件,如果目录不包含具有匹配名称的文件,则调用null
:
var imageFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ImageFolder");
var firstFile = Directory.EnumerateFiles(imageFolder, "*.jpg")
.Select(Path.GetFileName)
.FirstOrDefault();
if (firstFile != null)
{
image.Source = new BitmapImage(new Uri(Path.Combine(imageFolder, firstFile)));
}
或更短,没有GetFileName
和后续Combine
:
var imageFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ImageFolder");
var firstFile = Directory.EnumerateFiles(imageFolder, "*.jpg")
.FirstOrDefault();
if (firstFile != null)
{
image.Source = new BitmapImage(new Uri(firstFile));
}
答案 1 :(得分:0)
这就是你的第一行应该是这样的:
string ImageFiles = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory + "\\ImageFolder\\").Select(System.IO.Path.GetFileName).First();