Desenvolvimento - ASP. NET
Listando arquivos de um diretório para download em ASP.NET
Com as classes do .Net é possível fazer um belo e simples sistema para listar os arquivos de um diretório. Nesse artigo irei mostrar como navegar por diretórios e possibilitar o download de arquivos, escondendo a posição real do arquivo.
por Cassio R. Eskelsen
Faça o download dos fontes aqui

Se você quiser recompilar os binários, poderá usar o combine (para Sharp Develop ou Monovelop) ou ainda, compilar na mão: mcs -r:System.Web -r:System.Data -r:System.Drawing -t:library -out:bin/ftp.dll mostrainst.aspx.cs arquivos.aspx.cs |
<add key="diretorioFTP" value = "//caminho do diretorio que você quer listar//"/>Na primeira chave você indica o caminho de onde estão os arquivos que você puxou. Por exemplo, se você colocou em www.seusite.com.br/ftp, aqui você indicará "/ftp"Na segunda chave você indicará o caminho completo (diretório) a partir do qual você quer que o usuário "navegue". Esse diretório pode estar em qualquer parte do servidor, mas obviamende deve estar acessível para o Servidor. Caso o seu provedor não tenha informado qual é o caminho completo da sua aplicação, você pode usar o dir.aspx que está junto com os fontes. Ele vai mostrar em qual diretório ele está, e com isso você pode se orientar. Apenas chame http://www.seusite.com.br/ftp/dir.aspx Exemplos:windows: <add key="diretorioFTP" value = "//c://inetpub//www//root//seusite//arquivos\"/>linux: <add key="diretorioFTP" value = "/srv/www/htdocs/seusite/arquivos"/>Agora é só navegar! Aponte seu browser para http://www.seusite.com/ftp/arquivos.aspx e veja os arquivos sendo listados!!!Os arquivos-chave são os arquivos.aspx e arquivos.aspx.cs. Talvez você queira que haja um default.aspx no diretório para que não seja mostrada nenhuma mensagem de erro para o usuário ou ainda para que todos os arquivos não sejam listados. Você pode renomear o arquivos.aspx para default.aspx, mas para isso terá que "avisar" a rotina que o nome mudou. Você pode fazer isso acrescentando a chave nomeaspx em seu web.config, por exemplo:<add key="nomeaspx" value = "default.aspx"/>Futuramente colocarei para funcionar as opções editar, deletar e upload. Se alguém tiver alguma sugestão ou dúvida, por favor, mande um email para: cassio@br-mono.orgUma última observação: no site do Rudolf Ball não encontrei nenhuma referência à licença utilizada. Colocarei o artigo então sob a GPL. Dessa forma manteremos sempre a menção ao criador original.