通过迭代文件夹在asp.net中创建一个库

时间:2012-09-24 20:03:46

标签: c# asp.net webforms

我想在asp.net中创建一个画廊,它的工作方式如下:

  • 遍历图库文件夹
  • 选择所有文件夹并将其显示为相册,封面图片为该文件夹中的thumbnail.jpg
  • 点击相册时,应显示文件夹的内容(图片)。

我创建这个的方法是迭代文件夹并根据相册的内容制作视图和链接按钮,并使用转发器控件将该视图中的相册内容显示为图像,但是这样做不成功实现它时有很多错误。因为动态视图,我必须在on_init()函数中编写整个东西。我可以实现html和js部分(比如灯箱和其他可视化内容)。 请用一些代码示例建议一些更好的方法。请使用c#。感谢

1 个答案:

答案 0 :(得分:0)

我不能只写你所有的代码......但生病了给你一个启动代码:

int scanLVL = 4;//or however deep you need to go...
public  void GetImageFromDir(string sourceDir, int startLVL)
{
    if (startLVL <= scanLVL)
    {
        // Here you can process files found in the directory.
        string[] fileEntries = Directory.GetFiles(sourceDir);
        Label_showdata.Text +="<br />Dir:" +  Path.GetFileName(sourceDir) ;
        foreach (string fileName in fileEntries)
        {
            // do something with fileName
            String tree = "";
            for (int i = 0; i < startLVL; i++)
                tree += "&nbsp;&nbsp;&nbsp;";
            Label_showdata.Text += "<br />" + tree + Path.GetFileName(fileName);               
        }

        // Going in subdirectories of this directory.
        string[] subdirEntries = Directory.GetDirectories(sourceDir);
        foreach (string subdir in subdirEntries)

            if ((File.GetAttributes(subdir) &  FileAttributes.ReparsePoint) !=    FileAttributes.ReparsePoint)

                GetImageFromDir(subdir, startLVL + 1);
    }
}

这将在您的网页上打印您(实际上在该Label_showdata中)所有文件及其所在的目录。 基本上从这里你需要将这些数据包装到一个表中,然后将它绑定在你觉得舒服的任何控件中......实际上并不难......但是需要花费更多的时间来编写所有的代码(时间不幸的是,我现在没有...)