2013-07-10 140 views
-4

我试图加载一个文件夹中的图像,然后将它们插入标签。c#从文件夹加载图像

现在我有这个,我从另一个问题了:

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

你有什么试过的?你有什么问题?你是否理解这个代码? – SLaks

+0

这里没有问题。 – asawyer

+0

请勿使用非泛型集合。 – SLaks

回答

0

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

变化:

return imPath; 

到:

return arrayList; 

和变化:

public string GetImage() 

到:

public ArrayList GetImage() 

我也建议重命名arraylist,并在提问之前尝试做更多的研究。如果你明白什么是回报,你就会知道问题是什么。

而你可以阅读你的问题的评论,你不应该使用ArrayList。我不是C#的专家,因此必须由其他人来回答。

1

只需添加一个答案,以便我可以指出大家在这里感到困惑。

你在这里做什么:

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