Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Mailho

Tentando acessar diretorio de outro host (C#)

Recommended Posts

Fala galera, estou tentanto acessar um diretorio em outro computador na rede, estou usando um metodo get/set para passar

o caminho, dependendo do diretorio selecionado :

 

SetCaminho(Server.MapPath(@"\\D17501\\portal_ferramentas\\Portal_Relatorios\\Pre_PF\\"));

 

Entao, passo os parametros para o metodo grid:

 

loadFolder(GridView1, GetCaminho());

 

metodo get/set:

 

 private static string caminho;
       public string GetCaminho()
       {
           return caminho;
       }
       public void SetCaminho(string novoCaminho)
       {
           caminho = novoCaminho;            
       }

 

Metodo que carrega o grid:

 

  public void loadFolder(GridView gv_arquivos, String folder)
       {
           DirectoryInfo pasta = new DirectoryInfo(folder);

           DirectoryInfo[] subPastas = pasta.GetDirectories();            
           FileInfo[] arquivos = pasta.GetFiles(pasta.Root.ToString().Replace();

 

O problema acontece nesta ultima linha! aonde me aparece o erro:

 

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\D17501\portal_ferramentas\Portal_Relatorios\Pre_PF\'.

Debugando eu vi que a variavel pasta, possui como Root o caminho "C:/".

 

Como eu faço para retirar esse C:/ do path? tentei usar .replace() mas nao adianta, quando ele executa a ultima linha, sempre aparece o C:/.

 

 

Obrigado Desde já pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, é web mesmo. Eu nao consigo nem mesmo acessar uma pasta do meu proprio computador mas que esteja fora do diretorio da aplicação.

 

Por exemplo o arquivo "C:/Documentos/texte.txt".

Eu percorro todo o caminho corretamente até a pasta e listo os arquivos:

 

 SetCaminho(Server.MapPath("~/").Replace("C:\\PortalFerramentas\\PortalFerramentas", "C:\\Relatorios\\Pre_PF"));

 

Dai eu clico no botao de download, e debugando, eu vi que ele me traz o caminho e o nome correto do arquivo:

 

   if (row.RowType == DataControlRowType.DataRow)
               {
                       string can = GetCaminho();
                       Response.Redirect(can + row.Cells[1].Text);
               }

 

Ele retorna o nome correto: "C:\\Relatorios\\Pre_PF\\teste.txt", mas o browser simplesmente nao me deixa baixa-lo! Ele me mostra o erro de conexao padrao:

 

"Internet Explorer cannot display the webpage".

 

Funciona normalmente se o arquivo estiver localizado dentro do diretorio da aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A aplicação é web, mas nao esta hospedada na internet; é uma intranet.

 

Bom, eu consegui acessar o diretorio C:\ dessa forma:

 

 

string fullPath = GetCaminho() + row.Cells[1].Text;
string file = Path.GetFileName(fullPath);

                   Response.AppendHeader("content-disposition", "attachment; filename=" + file);
                   Response.ContentType = "text/plain";
                   Response.WriteFile(fullPath);
                   Response.End();

 

 

Mas ainda não funcionou quando tento acessar uma outra maquina na rede.

Me da o erro:

 

Could not find a part of the path 'C:\D15179\Relatorios\Pre_PF\'.

 

Esse C:\ que tinha que sair.

 

Por diretorio virtual voce fala para, mapear uma nova unicade na rede e colocar a pasta la? Mai dai não estaria no meu computador!? Eu preciso acessar outro copmputador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.