codice:
<%@ Import NameSpace="System.IO" %>
<script...>

private dir as DirectoryInfo
private f as FileInfo
private strDir as String

sub Page_Load(...)
if not Page.IsPostBack then
  strDir = Request.Params("dir")
  if strDir="" then
    strDir="c:\"
  end if
  tbDir.Text = StrDir
  dir = new DirectoryInfo(StrDir)
  ListFiles() 
end sub

sub tbDir_Handles(..)
  strDir=obj.Text
  if Directory.Exists(strDir) then
     dir = new DirectoryInfo(strDir)
     ListFiles()
  else
     lblMessage.Text="Directory non valida"
  end if
end sub

sub ListFiles()
  dim hl as HyperLink
  dim d as DirectoryInfo
  if not dir.Root.FullName = dir.FullName then
    hl = new Hyperlynk
    hl.Text =""
    hl.NavigateURL = "pagina.aspx?dir="& Server.URLEncode(dir.Parent.FullName)
    Panel1.Controls.Add(h1)

    Panel1.Controls.Add(new LiteralControl("
"))
  end if
  
  for each d in dir.GetDirectories
     hl=new Hyperlink
     hl.Text = d.Name
     h1.NavigateURL = "pagina.aspx?dir="& Server.URLEncode(d.FullName)
     Panel1.Controls.Add(hl)
     
     Panel1.Controls.Add(new LiteralControl("
"))
  next

  for each f in dir.GetFiles("*.*")
     lblMessage.Text += f.Name & "
"
  next
end sub

</script>

<html><body>
<form ..>
 Directory : <asp:Textbox id="tbDir" runat="server" OnTextChanged="tbDir_Handle" AutoPostBack="true" />


 <asp:Panel id="Panel1" runat="server" MaintainState="true" />
<asp:Label id="lblMessage" runat="server" maintainstate="false" />
</form>
</body></html>

se nella parte in neretto ci si mette un ListBox credo che risolvi il tuo problema