从服务器中的文件夹中检索图像

时间:2018-05-25 06:22:51

标签: c# image foreach server directory

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 :(得分:0)

var imagesStringvar imageChar。您的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"});
    }
}

如您所见,代码完全有效,但绝对不是您的想法。