I am assuming you don't want to copy the div tag for each image in your HTML as it will be a maintenance headache.
To avoid it, you can create a asp.net custom control to read the folder and emit div tag (as in your code) per image. if you want to store properties for each file (like user friendly name etc) then you can store that in XML and read it from there.
There are plenty of articles if you google on how to create a custom control but here are the steps in brief.
1. Create a class library project or use existing and add item - asp.net server control.
2. Read the files from folder (you can have folder path as a public property in order to reuse the control) and emit HTML per image.
To emit HTML per image - there are three options-
1. you can override RenderContents method and emit HTML as a string. Note your custom control derives from Web control, so its already part of page controls whichever page you put it on.
2. you cab override CreateChildControls and add child controls. you can add asp.net image control and literal control for plain HTML.
3. you can override OnLoad (in case you want to hook up events to images)
Finally place the control on your page. You might have to add your control in toolbox first (google for how to do it. its easy). Set the properties in page source or at run time and you will be good to go.
Sorry I dont have ready to copy code unfortunately. I can only tell you the direction but you will have to write the code yourself or google copy it.