Получить изображение из папки на сервере - PullRequest
0 голосов
/ 25 мая 2018
private List<ImageUrl> GetImageNames()
{

    var mediaServerFilePath = Helper.GetMediaDomain();
    var path = HttpContext.Current.Request.UrlReferrer.ToString().Split('/');
    var FolderName = path.Last().Replace(".htm", "");
    var languageCode = Helper.CurrencyCode;
    var images = mediaServerFilePath + "/Assets/img/DepositHelp/Banner" + "/" + languageCode + "/" + FolderName +"/"+ "*.jpg";
    List<ImageUrl> ImageUrlList = new List<ImageUrl>();
    foreach (var image in images)
    {

        ImageUrlList.Add(new ImageUrl { Name = mediaServerFilePath + "/Assets/img/DepositHelp/Banner" + "/" + languageCode + "/" + FolderName + "/" + image+".jpg" });
    }
}

Я уже указал путь к изображению, но результат, который он возвращает, не совпадает с именем изображения в папке.

Что-то не так с этим кодом?

1 Ответ

0 голосов
/ 04 июня 2018

var images - это String, а var image - это Char.Ваш foreach зацикливается на всех символах в строке этого пути , а не на файлах в этой папке.

Это означает, что вы генерируете новый ImageUrl для каждого символа вэтот путь.

Нет нигде в этом блоке кода, который на самом деле извлекает любые файлы из этой папки.

Я настоятельно рекомендую вам прекратить использование var.Это может показаться удобным сочетанием клавиш, но в конечном итоге вас запутает.Если бы вы только что явно определили свои переменные, вы бы сразу увидели, что это не правильно:

private List<ImageUrl> GetImageNames()
{
    String mediaServerFilePath = Helper.GetMediaDomain();
    String[] path = HttpContext.Current.Request.UrlReferrer.ToString().Split('/');
    String FolderName = path.Last().Replace(".htm", "");
    String languageCode = Helper.CurrencyCode;
    String images = mediaServerFilePath + "/Assets/img/DepositHelp/Banner" + "/" + languageCode + "/" + FolderName + "/" + "*.jpg";
    List<ImageUrl> ImageUrlList = new List<ImageUrl>();
    foreach (Char image in images)
    {
        ImageUrlList.Add(new ImageUrl {Name = mediaServerFilePath + "/Assets/img/DepositHelp/Banner" + "/" + languageCode + "/" + FolderName + "/" + image + ".jpg"});
    }
}

Как видите, код совершенно корректен, но абсолютно не тот, который вы имели в виду.

...