Проверка наличия изображения в моих локальных ресурсах - PullRequest
7 голосов
/ 10 декабря 2011
Приложение

net / C # У меня есть список элементов.

В следующем коде: я хочу назначить картинку из моих локальных ресурсов для каждого элемента.названия элементов и имена изображений совпадают.Все изображения находятся в папке «изображения» в моем проекте.

Пример того, как я назначаю изображение элементу:

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";
}

Но метод File.Exists всегда возвращает false, даже есликартина существует.Я также пытался использовать '\' вместо '/', но не работал

Как я могу это сделать?

Спасибо за любую помощь

Ответы [ 2 ]

16 голосов
/ 10 декабря 2011

Вам необходимо преобразовать относительный путь к файлу в физический путь к файлу, чтобы File.Exists работал правильно.

Вы захотите использовать Server.MapPath для проверки существованияфайла:

if(File.Exists(Server.MapPath("/images/items/"+item.Name+".jpg")))

Кроме того, когда вы используете Server.MapPath, вы обычно должны указывать начальную косую черту, чтобы запрос относился к каталогу веб-приложения.

Если вы не укажете начальную косую черту, путь будет сгенерирован относительно текущей обрабатываемой страницы, и если эта страница находится в подкаталоге, вы не попадете в папку с изображениями.

0 голосов
/ 26 июня 2019
var path = $@"C:\Fotos\Funcionarios\1.Png";
FileInfo file = new FileInfo(path);

if (file.Exists.Equals(true))
{
   //faz algo
}
...