Usuário com melhor resposta
C# - Selecionar todas as fotos de todos os diretórios subsequentes menos um diretório em especifico.

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?
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
Diretorio3Ou 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
Todas as Respostas
-
-
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.- Editado Antero Marques segunda-feira, 4 de dezembro de 2017 11:36
-
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
Diretorio3Ou 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