如何使用for循环填充列表框以显示没有扩展名的文件夹中的图像名称

时间:2015-03-15 17:13:05

标签: c# asp.net loops listbox

我想弄清楚的问题是:如何使用Visual Studio Project中的文件夹中的图像名称填充列表框?到目前为止我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        for (int i = 1; i < 8; i++)
        {
            ListBox1.Items.Add(System.IO.Path.GetFileNameWithoutExtension(""));
        }
    }
}

基本上,我在一个文件夹中有7个图像(在我的实际视觉工作室项目中),我希望for循环用图像的名称填充列表框,但没有扩展名。我似乎无法弄清楚如何使目录工作。如果有人能帮助我,我将非常感激。我遇到了麻烦。

在此之后,我想使用'if'语句根据用户在列表框中单击的项目来设置显示的图像,如果这是有意义的话。我不知道项目=某个项目的代码,我可以根据他们选择的内容显示图像。

我可能说这个非常糟糕,但这是我目前遇到的问题,非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用“Directory.GetFiles”mehtod从文件夹中获取文件。第一个参数是您的图像文件夹,第二个参数是过滤器。因此,您可以过滤所需的任何类型的文件。

示例:

string[] images = Directory.GetFiles(path/to/your/folder, "*.png");

foreach (string image in images)
{
       ListBox1.Items.Add(System.IO.Path.GetFileNameWithoutExtension(image));
}

答案 1 :(得分:0)

protected void Page_Load(object sender, EventArgs e)
    {
        loadImages();
    }

    string[] files;

    void loadImages()
    {
        files = Directory.GetFiles(Server.MapPath("~/images/"));
        for (int i = 0; i < files.Length; i++)
            ListBox1.Items.Add(System.IO.Path.GetFileNameWithoutExtension(files[i]));

        ListBox1.AutoPostBack = true;
        ListBox1.SelectedIndexChanged += ListBox1_SelectedIndexChanged;

    }

    void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string extn = files[ListBox1.SelectedIndex];
        extn = extn.Substring(extn.LastIndexOf('.'));
        Image1.ImageUrl = "/images/" + ListBox1.SelectedItem.ToString() + extn;
    }