none
C# - Selecionar todas as fotos de todos os diretórios subsequentes menos um diretório em especifico. RRS feed

  • Pergunta

  • Eu estou pegando todas as fotos de um diretório e seus subsequentes, mas eu não gostaria que fosse a pasta "Backup", como eu poderia fazer isso?
    string[] Arquivos = Directory.GetFiles(PathEx, "*.*", SearchOption.AllDirectories);
    Eu estava pensando em usar o IndexOf, mas eu penso que isso seria uma má otimização, pois não seria mais fácil tira-los do que apenas verificar se está na pasta certa ou errada?
    domingo, 3 de dezembro de 2017 14:47

Respostas

  • Olá KSDT!

    Aproveitando a resposta de nosso amigo Antero.

    Antero, vale ressaltar que ao utilizar o StartWith, ele nunca irá considerar um sub-diretório, por exemplo:

    DiretorioRaiz
        Diretorio1
        Diretorio2
        Diretorio3

    Ou seja o filtro não irá funcionar dessa forma, pois ele irá validar sempre o DiretorioRaiz, para ter exito nisso, poderemos usar o seguinte.

    var Arquivos 
        = Directory.GetFiles(PathEx, "*.*", SearchOption.AllDirectories)
            .Where(p =>  new DirectoryInfo(p).Parent.Name != "DirNegado").ToArray();

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    • Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 5 de dezembro de 2017 09:47
    • Marcado como Resposta KDST terça-feira, 5 de dezembro de 2017 16:21
    segunda-feira, 4 de dezembro de 2017 13:28

Todas as Respostas

  • Arquivos = Arquivos.Where(m => m != "Backup").ToArray();


    Danilo Oliveira www.coffeeandcodes.com.br

    segunda-feira, 4 de dezembro de 2017 09:01
  • var Arquivos = Directory.GetFiles(PathEx , "*.*", SearchOption.AllDirectories).Where(d => !d.StartsWith("Backup")).ToArray();


    Antero Marques
    ____________________________________________________________________________
    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta. O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    segunda-feira, 4 de dezembro de 2017 11:35
  • Olá KSDT!

    Aproveitando a resposta de nosso amigo Antero.

    Antero, vale ressaltar que ao utilizar o StartWith, ele nunca irá considerar um sub-diretório, por exemplo:

    DiretorioRaiz
        Diretorio1
        Diretorio2
        Diretorio3

    Ou seja o filtro não irá funcionar dessa forma, pois ele irá validar sempre o DiretorioRaiz, para ter exito nisso, poderemos usar o seguinte.

    var Arquivos 
        = Directory.GetFiles(PathEx, "*.*", SearchOption.AllDirectories)
            .Where(p =>  new DirectoryInfo(p).Parent.Name != "DirNegado").ToArray();

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    • Sugerido como Resposta AndreAlvesLimaModerator terça-feira, 5 de dezembro de 2017 09:47
    • Marcado como Resposta KDST terça-feira, 5 de dezembro de 2017 16:21
    segunda-feira, 4 de dezembro de 2017 13:28