检查图像是否存在于我的本地资源中
本文关键字:资源 我的 是否 图像 存在 于我的 检查 | 更新日期: 2023-09-27 18:17:17
net/c#应用程序我有一个项目列表
后面的代码:我想从本地资源中为每个项目分配一张图片。项目名称和图片名称相同。这些图片都在我项目的image文件夹中。
给一个项目分配图片的例子:
Item1.PictureUrl = "images/items/" + item1.Name + ".jpg";
我有没有图片的项目。我想为他们指定一个默认的图片。
我试着检查图片是否存在,使用这个:
foreach(ObjectItem item in ListOfItems)
{
if(File.Exists("images/items/"+item.Name+".jpg"))
item.PictureUrl = "images/items/"+item.Name+".jpg";
else
item.PictureUrl= "images/Default.jpp";
}
但是文件。方法总是返回false,即使图片存在。我还尝试使用'''代替'/',但没有工作
我该怎么做?
感谢您的帮助
您需要将相对文件路径转换为物理文件路径。
您将需要使用Server。用于验证文件是否存在的MapPath:
if(File.Exists(Server.MapPath("/images/items/"+item.Name+".jpg")))
同样,当您使用Server。在MapPath中,您通常应该指定前导斜杠,以便请求相对于web应用程序的目录。
如果您不提供前导斜杠,则路径将相对于正在处理的当前页面生成,如果该页位于子目录中,则您将无法进入图像文件夹。
。Net Core Solution
1-把这个写在视图的顶部(在这里注入IHostingEnvironment);
@inject Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnv
2-写入image的位置(做存在检查);
var path = System.IO.Path.Combine(hostingEnv.WebRootPath, "MyFolder", "MyImage.jpg");
if (System.IO.File.Exists(path))
{
<img class="img-fluid" src="~/MyFolder/MyImage.jpg" alt="">
}
var path = $@"C:'Fotos'Funcionarios'1.Png";
FileInfo file = new FileInfo(path);
if (file.Exists.Equals(true))
{
//faz algo
}