c#从文件夹加载图像

时间:2013-07-10 14:56:03

标签: c# asp.net

我试图从文件夹加载图像,然后将它们插入标签。

现在,我从另一个问题中得到了这个:

public string GetImage()
    {

        string imPath;
        imPath = HttpContext.Current.Server.MapPath("~/Layout/Images/Banner");

        DirectoryInfo directoryInfo = new DirectoryInfo(imPath);
        FileInfo[] fileInfo = directoryInfo.GetFiles();
        ArrayList arrayList = new ArrayList();

        foreach (FileInfo fi in fileInfo)
                arrayList.Add(fi.FullName);



        return imPath;
    }

但它没有返回图像,只返回文件夹路径。

2 个答案:

答案 0 :(得分:2)

只需添加一个答案,我就可以指出每个人都对此感到困惑。

你在这里做了什么:

public string GetImage()
{

    string imPath;
    imPath = HttpContext.Current.Server.MapPath("~/Layout/Images/Banner");

    DirectoryInfo directoryInfo = new DirectoryInfo(imPath);
    FileInfo[] fileInfo = directoryInfo.GetFiles();
    ArrayList arrayList = new ArrayList();

    foreach (FileInfo fi in fileInfo)
            arrayList.Add(fi.FullName);


    return imPath;
}

等同于以下内容:

public string GetImage()
{
    return HttpContext.Current.Server.MapPath("~/Layout/Images/Banner");
}

这就是为什么每个人都有点困惑。

也许这就是你想要的(重构一点点)?

public ArrayList GetImage()
{
    DirectoryInfo directoryInfo = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/Layout/Images/Banner"));
    ArrayList arrayList = new ArrayList();

    foreach (FileInfo fi in directoryInfo.GetFiles())
            arrayList.Add(fi.FullName);

    return arrayList;
}

答案 1 :(得分:1)

这是因为你返回了图像路径..你可能想要你正在制作的ArrayList。

变化:

return imPath;

为:

return arrayList;

并改变:

public string GetImage()

为:

public ArrayList GetImage()

我还建议重新命名那个arraylist,并在提问之前尝试做更多的研究。如果您了解回报是什么,您就会知道问题所在。

正如您可以阅读问题的评论,您不应该使用ArrayList。我不是C#的专家,因此必须得到其他人的回答。