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" });
}
}
我已经给出了图片的路径,但它返回的结果与文件夹中的图片名称不同。
这段代码有什么问题吗?
答案 0 :(得分:0)
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"});
}
}
如您所见,代码完全有效,但绝对不是您的想法。