Usuário com melhor resposta
Selecionar arquivos com Linq

Pergunta
-
Bom dia
Estou precisando fazer um filtro em arquivos usando linq.
No meu diretório tenho arquivos com vários nomes, porém, preciso pegar os arquivos que contenham um valor no inicio no fim e na extensão informada. Não estou conseguindo adicionar estas condições; vejam o código:
string ConstInicial = "MAT"; //deve iniciar por string ConstFinal = "_xpto"; //deve finalizar por string Extensao = "jpg"; //deve ter esta extensão string Diretorio = @"C:\TEMP\FOTOS"; //caminho
DirectoryInfo dirInfo = new DirectoryInfo(Diretorio); var Arquivos = from arquivo in dirInfo.EnumerateFiles() //MINHA DÚVIDA - FILTRO PARA CONSTANTE INICIAL, CONSTANTE FINAL E EXTENSÃO select arquivo;
O retorno baseado em arquivos existentes:
MAT1235_xpto.jpg //sim
MAT678_xpto.jpg //sim
MAT55523_xpto.jpg //sim
MAT2342_xxx.jpg //não, constante final não é igual
23423_x.jpg //não, sem constante inicial e constante final não é igual
MAT23423_xpto.png //não, extensão diferente
Mat2344_xpto.jpg //não, constante inicial é diferentePor favor desde já agradeço a ajuda!
Eduardo Heitor
- Editado Eduardo Agostinho sexta-feira, 19 de agosto de 2016 13:36
Respostas
-
Olá Eduardo,
Você pode fazer assim:
DirectoryInfo dirInfo = new DirectoryInfo(Diretorio); var Arquivos = from arquivo in dirInfo.EnumerateFiles() where arquivo.Name.StartsWith(ConstInicial) && arquivo.Name.Substring(0, arquivo.Name.Length - 4).EndsWith(ConstFinal) && arquivo.Extension.Contains(Extensao) select arquivo;
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP sexta-feira, 19 de agosto de 2016 14:10
- Marcado como Resposta Eduardo Agostinho sexta-feira, 19 de agosto de 2016 16:06
Todas as Respostas
-
Olá Eduardo,
Você pode fazer assim:
DirectoryInfo dirInfo = new DirectoryInfo(Diretorio); var Arquivos = from arquivo in dirInfo.EnumerateFiles() where arquivo.Name.StartsWith(ConstInicial) && arquivo.Name.Substring(0, arquivo.Name.Length - 4).EndsWith(ConstFinal) && arquivo.Extension.Contains(Extensao) select arquivo;
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP sexta-feira, 19 de agosto de 2016 14:10
- Marcado como Resposta Eduardo Agostinho sexta-feira, 19 de agosto de 2016 16:06
-
Olá Eduardo,
Você pode fazer assim:
DirectoryInfo dirInfo = new DirectoryInfo(Diretorio); var Arquivos = from arquivo in dirInfo.EnumerateFiles() where arquivo.Name.StartsWith(ConstInicial) && arquivo.Name.Substring(0, arquivo.Name.Length - 4).EndsWith(ConstFinal) && arquivo.Extension.Contains(Extensao) select arquivo;
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco
Obrigado André
Funcionou perfeitamente!!!!
Eduardo Heitor