none
Copiar arquivos de um servidor para computadores

    Question

  • Entao galera, O codigo q tenho e esse abaixo, copiando no mesmo computador, de uma pasta para outra, ate funcionou o problema foi quando inserir o local de origem dos arquivos, como um servidor nosso o qual o endereço é "10.140.5.240"....

    A pergunta é, como faço pra copiar os arquivos do servidor, para o meu computador ???

    Mapeie o caminho e mesmo assim nao funciona... :/ me ajudem por favor.

    do jeito que esta nao funciona, o aplicativo apenas nao roda...

    private void Form1_Load(object sender, EventArgs e)
            {
                string fileName = "mitra.exe";
                string MGES = "MGEServ.exe";
                string MGEP = "MGEPess";
                string sourcePath=@"\\10.140.5.240\Executaveis 20-10-11";
                string targetPath = @"C:\TestFolder";


                string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
                string destFile = System.IO.Path.Combine(targetPath, fileName);


                if (!System.IO.Directory.Exists(targetPath))
                {
                    System.IO.Directory.CreateDirectory(targetPath);
                }


                System.IO.File.Copy(sourceFile, destFile, true);


                if (System.IO.Directory.Exists(sourcePath))
                {
                    string[] files = System.IO.Directory.GetFiles(sourcePath);


                    foreach (string s in files)
                    {

                        fileName = System.IO.Path.GetFileName(s);
                        destFile = System.IO.Path.Combine(targetPath, fileName);
                        System.IO.File.Copy(s, destFile, true);

                                                                        
    Tuesday, March 26, 2013 8:28 PM

Answers

  • Cara,

    O seu código funcionou perfeitamente, utilizei um caminho mapeado renomeado como "U:\" para uma pasta local na minha máquina:

                string fileName = "Teste.txt";
                string sourcePath = @"U:\Builds\Erros";
                string targetPath = @"C:\Users\samuelra\Downloads";
    
                string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
                string destFile = System.IO.Path.Combine(targetPath, fileName);
    
                if (!System.IO.Directory.Exists(targetPath))
                {
                    System.IO.Directory.CreateDirectory(targetPath);
                }
    
                if (System.IO.Directory.Exists(sourcePath))
                {
                    string[] files = System.IO.Directory.GetFiles(sourcePath);
    
                    foreach (string s in files)
                    {
    
                        fileName = System.IO.Path.GetFileName(s);
                        destFile = System.IO.Path.Combine(targetPath, fileName);
                        System.IO.File.Copy(s, destFile, true);
                    }
                }

    1º - Confirme se a pasta do servidor está realmente mapeada e se possui permissão para o sistema acessar(System).

    2º - Delete as seguintes linhas:

    string MGES = "MGEServ.exe"; string MGEP = "MGEPess";

    System.IO.File.Copy(sourceFile, destFile, true);

    Completamente desnecessário já que não usa em lugar algum.

    3º - Verifique se a rede está disponível no momento que a aplicação vai acessar o caminho mapeado.


    Atenciosamente, Samuel dos Anjos


    Wednesday, March 27, 2013 12:02 AM

All replies

  • Cara,

    O seu código funcionou perfeitamente, utilizei um caminho mapeado renomeado como "U:\" para uma pasta local na minha máquina:

                string fileName = "Teste.txt";
                string sourcePath = @"U:\Builds\Erros";
                string targetPath = @"C:\Users\samuelra\Downloads";
    
                string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
                string destFile = System.IO.Path.Combine(targetPath, fileName);
    
                if (!System.IO.Directory.Exists(targetPath))
                {
                    System.IO.Directory.CreateDirectory(targetPath);
                }
    
                if (System.IO.Directory.Exists(sourcePath))
                {
                    string[] files = System.IO.Directory.GetFiles(sourcePath);
    
                    foreach (string s in files)
                    {
    
                        fileName = System.IO.Path.GetFileName(s);
                        destFile = System.IO.Path.Combine(targetPath, fileName);
                        System.IO.File.Copy(s, destFile, true);
                    }
                }

    1º - Confirme se a pasta do servidor está realmente mapeada e se possui permissão para o sistema acessar(System).

    2º - Delete as seguintes linhas:

    string MGES = "MGEServ.exe"; string MGEP = "MGEPess";

    System.IO.File.Copy(sourceFile, destFile, true);

    Completamente desnecessário já que não usa em lugar algum.

    3º - Verifique se a rede está disponível no momento que a aplicação vai acessar o caminho mapeado.


    Atenciosamente, Samuel dos Anjos


    Wednesday, March 27, 2013 12:02 AM
  • Realmente esta funcionando Samuel, rodei o programa e fiquei esperando.. esperando.. depois de 2 Min aguardando, apareceu a minha tela carregando, e os arquivo foram copiados sim...

    Problema agora é a lentidao, sao 150mb de arquivos.. 

    esse programa vai funcionar como um atualizador do nosso sistema aqui na empresa,

    teria como eu copiar e substituir somente os arquivos que forem de dadas diferentes a aqueles q ja estao na pasta ??

    Exemplo: tenho 03 aplicativos no meu computador, e so quero atualizar 1, tem o mesmo nome, porem data de modificaçao diferente, ai quando ele for atualizar, puxar somente esse arquivo ? para nao pesar tanto...

    Mais uma vez, muito obrigado, depois que descobrir o forum, tirei varias duvidas, estou cada dia mais empolgado com a linguagem.. XD

    Wednesday, March 27, 2013 11:20 AM
  • Cara,

    Sim, todas essas dúvidas são possíveis de serem tratadas. Você consegue pegar todas as propriedades dos arquivos e até mesmo fazer um filtro das extensões que apenas deseja ter visualização.

    Comece a trabalhar com:

    DirectoryInfo
    FileInfo

    Pode utilizar link para lhe ajudar:

    IEnumerable<FileInfo> fileQuery = from file in fileList where file.Extension == ".txt" orderby file.Name select file;
    
    foreach (FileInfo Arquivo in fileQuery)
    {
       ...
    }



    Atenciosamente, Samuel dos Anjos

    Wednesday, March 27, 2013 5:51 PM