none
Problema ao pegar o nome de um arquivo com C# RRS feed

  • Pergunta

  • Bom dia pessoal,

    Meu nome é Tiago e eu estou criando um aplicativo em C# que deve pegar todos os arquivos .xls dentro de uma pasta e exportá-los para uma tabela no banco de dados MS Access 2007. Efetuei este procedimento com um único arquivo eu consegui, agora estou estudando uma forma de fazer este procedimento com vários arquivos contidos na pasta. A medida que o C# importa os dados do .xls para uma Tabela do Access, o mesmo move o arquivo para uma outra pasta e efetua a importação do proximo arquivo, até que a pasta estaja vazia.

    A primeira coisa que quiz fazer é verificar qual nome de aquivo o C# esta trazendo, dentre os 8 arquivos existentes na pasta. Para testar usei o código abaixo:

    using System.IO;
    using System.Data;
    using System.Data.OleDb;
    namespace GastosBandeira.DAO
    {
        class DaoInvoiceExcelOrigem
        {
            private String provider = null;
            //OleDbConnection con = null;
            //OleDbCommand sql = null;
            public DaoInvoiceExcelOrigem()
            {
                CapturaDiretorio caminho = new CapturaDiretorio();
                provider = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + caminho.caminhoArquivo() + "';Extended Properties='Excel 8.0;HDR=YES;'";
            }
            public String MostraProvider()
            {
                return provider.ToString();
            }
        }
    }

    Dentro de minha pasta eu tenho os seguintes arquivos ordenados pelo nome e eu preciso popular minha tabela no access nesta ordem. Segue abaixo os nomes em ordem:

    MCI_Invoice_11-01-2012_1632.xls

    MCI_Invoice_11-01-2012_8328.xls

    MCI_Invoice_11-01-2012_11160.xls

    MCI_Invoice_11-01-2012_11783.xls

    MCI_Invoice_11-02-2012_1632.xls

    MCI_Invoice_11-02-2012_8328.xls

    MCI_Invoice_11-02-2012_11160.xls

    MCI_Invoice_11-02-2012_11783.xls

    O que acontece é que, entre os 8 arquivos existente na pasta, o C# sempre tráz o nome do 6º arquivo "MCI_Invoice_11-02-2012_8328.xls", mas eu preciso que ele me traga sempre o 1º "MCI_Invoice_11-01-2012_1632.xls", ou seja, a medida que o programa importa o arquivo, o mesmo dever ser movido para uma outra pasta e iniciar a importação do próximo arquivo que seria "MCI_Invoice_11-01-2012_8328.xls", até que a pasta esteja vazia.

    Através de analises eu percebi que o C# tráz o arquivo ordenado pela Data Modified, ou seja, o arquivo com a data de modificação mais recente, mas eu preciso que ele me traga pelo nome.

    Tentei procurar algum metodo que busque pelo nome do arquivo, mas não encontrei nada.

    Quem poderia me ajudar.

    Desde ja Agradeço

    Tiago Lima - Analista de Processos.

    quarta-feira, 5 de dezembro de 2012 14:04

Respostas

Todas as Respostas