TransWikia.com

Filtrar arquivo específico para não excluir

Stack Overflow em Português Asked on November 8, 2021

Como fazer o código não apagar um arquivo específico que eu quero entre os .exe que eu pego. Exemplo: quero que ele não apague “teste.exe”, mas que ainda continue apagando todo o resto.

Segue o código:

string[] arquivos = Directory.GetFiles(@"C:tempae", "*.exe", SearchOption.TopDirectoryOnly);
foreach (string arquivo in arquivos)
{
    //nome = Path.GetFileName(arquivo);
    File.Delete(arquivo);
}

3 Answers

Segue mais uma opção utilizando linq

string[] arquivos = Directory.GetFiles(@"C:tempae", "*.exe", SearchOption.TopDirectoryOnly).Where(p => p != "teste.exe").ToArray();
foreach (string arquivo in arquivos)
    File.Delete(arquivo);

Answered by Barbetta on November 8, 2021

foreach (var arquivo in Directory.GetFiles(@"C:tempae", "*.exe", SearchOption.TopDirectoryOnly) {
    if (Path.GetFileName(arquivo) != "teste.exe") File.Delete(arquivo);
}

Se preferir pode fazer com LINQ, eu faria, porque é mais performático neste caso. Fazendo certo apesar de ter um pouco de overhead pela infraestrutura do LINQ ele faz apenas um loop. Na resposta do Barbetta ele faz 2 loops, um pra pegar os arquivos e outro para filtrar. O Enumerate não executa loop algum.

foreach (var arquivo in Directory.EnumerateFiles(@"C:tempae", "*.exe", SearchOption.TopDirectoryOnly).Where(f => Path.GetFileName(f) != "teste.exe") File.Delete(arquivo);

Coloquei no GitHub para referência futura.

Answered by Maniero on November 8, 2021

Você pode usar um condicional dentro do próprio foreach, assim:

    string[] arquivos = Directory.GetFiles(@"C:tempae", "*.exe", SearchOption.TopDirectoryOnly);
    foreach (string arquivo in arquivos)
    {
        var nome = Path.GetFileName(arquivo);
        if (nome != "teste.exe")
            File.Delete(arquivo);
    }

Answered by Phiter on November 8, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP