Ir para conteúdo

Arquivado

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

Flavio Lima_168409

Como direcionar um arquivo para respectiva pasta em c#

Recommended Posts

Boa tarde, antigamente eu comparava as duas strings lendo o nome de um arquivo através do metodo substring e o meu codigo estava normal, agora comecei a ler as tags xml, mesmo desse modo joguei pra uma string pra seguir o mesmo padrão de comparação (pelo if) e agora os arquivos não estão sendo filtrados. Será que alguém poderia verificar meu código e me orientar em relação a uma outra maneira de que posso fazer isso? Segue o códio atual para analise.

 

                     DirectoryInfo pOrigem, pDestino;
                           pOrigem = new DirectoryInfo(txtEntrada.Text);
                           pDestino = new DirectoryInfo(Path2);//Variavel na qual é atribuida o caminho de destino (subpasta)




                           try
                           {

                               //cria o diretório de destino se ele não existir


                               if (!pDestino.Exists)
                               {
                                   pDestino.Create();
                               }

                               //para cada arquivo na pasta origem copia esse arquivo para a pasta destino

                               foreach (FileInfo arquivo in pOrigem.GetFiles())
                               {

                                   XmlNodeList verificarCNPJ = nodo.GetElementsByTagName("CNPJ");
                                   XmlNodeList verificarDt = nodo.GetElementsByTagName("dhEvento");



                                   string cnpjFinal = verificarCNPJ[0].InnerText;
                                   string divData2 = verificarDt[0].InnerText;

                                   string verificaAno = divData2.Substring(0, 4);
                                   string varificaMes = divData2.Substring(5, 2);




                                   if ((cnpjFinal.Equals(cnpj)) && (verificaAno.Equals(ano)) && (varificaMes.Equals(mes)))
                                   {


                                           arquivo.CopyTo(Path.Combine(pDestino.FullName, arquivo.Name));


                                   }






                               }

                               //para cada pasta na pasta origem copia essa pasta para a pasta destino

                               foreach (DirectoryInfo pasta in pOrigem.GetDirectories())
                               {

                                   string strNomeDestino = Path.Combine(pDestino.FullName, pasta.Name);

                                   //chama a função recursivamente
                                   CopiaPasta(pasta.FullName, strNomeDestino);

                               }



                           }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, essa parte aqui

 foreach (FileInfo arquivo in pOrigem.GetFiles())
                               {

                                   XmlNodeList verificarCNPJ = nodo.GetElementsByTagName("CNPJ");
                                   XmlNodeList verificarDt = nodo.GetElementsByTagName("dhEvento");



                                   string cnpjFinal = verificarCNPJ[0].InnerText;
                                   string divData2 = verificarDt[0].InnerText;

                                   string verificaAno = divData2.Substring(0, 4);
                                   string varificaMes = divData2.Substring(5, 2);




                                  // if ((cnpjFinal.Equals(cnpj)) && (verificaAno.Equals(ano)) && (varificaMes.Equals(mes)))// ESSE IF QUE EU GOSTARIA DE MUDAR, POIS ELE NÃO ESTÁ FAZENDO COM QUE HAJA A VERIFICAÇÃO E DIRECIONANDO OS ARQUIVOS PRA SUBPASTA CORRESPONDENTE.//
                                   {


                                           arquivo.CopyTo(Path.Combine(pDestino.FullName, arquivo.Name));


                                   }

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o if é executado sim, e os valores são iguais, o problema é que ele não joga o arquivo xml onde as tags "cnpj","dhEvento (essa eu separei pelo metodo substring 'ano' e 'mes')" SÃO IGUAIS ao nome das pastas e subpastas que são criadas com os mesmos nomes das tags.

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.