Please see my comment to the question. Not only I explained why your code does not work for an entire folder, I explained why it cannot work like that in principle. All you can do is to create some active code which would assemble the set of files on the client side and put them in HTTP request. Your idea itself is very good, I must say, such thing would be great to achieve, but this is not as simple as you probably think.
The problems is: the solutions I saw so far are all based on the use of the ActiveX "Scripting.FileSystemObject". This is a dirty approach, to say the least. First of all, not all browsers and systems will support it. This is (almost) exclusively for Microsoft system and IE; even though some other browser can do it via a plug-in, it would still be only for clients on Microsoft OS. Worse, this is considered unsafe, because ActiveX would open wide access to the client's system for a Web application. Many computer-savvy users will never use your site when they learn that you use ActiveX. Anyway, you will be able to find such solutions easily:
http://bit.ly/HEvPd8[
^].
Other solutions may involve Silverlight or Flash (should be installed on client side, but such solutions are more multiplatform; for example, there is a Mono versions of Silverligh for Mono version called Moonlight), or Java applet (more exactly, an applet based on the installed JVM used in the browser, which most clients should have, but the source language could be different from Java).
Please see:
http://www.michielpost.nl/Silverlight/MultiFileUploader/[
^],
http://www.vectorlight.net/silverlight/demos/file_explorer.aspx[
^],
http://jupload.sourceforge.net/applet-basic.html[
^].
And so on… Nothing you can do with ASP.NET along. You can try to find some more, using the search pattern shown above, adding keywords on the technology you could consider to use.
—SA