Quando usar Folder.Files e Folder.Contents no Power Query

Tempo de leitura:

4-5 minutos

Em Power Query, um dos processos e métodos mais usados é o da importação de ficheiros de uma pasta. Quando usamos esta técnica, podemos automatizar a importação de todos os ficheiros de uma pasta, de uma forma intuitiva e prática e conseguimos atualizar relatórios em Excel ou Power BI automaticamente quando adicionamos ou removemos ficheiros dessa pasta.

O processo é muito simples e pode ser analisado nas imagens em baixo.

Obter os dados da pasta

Por exemplo no Microsoft Excel, acedemos ao Menu Dados -> Obter Dados ->  De Ficheiro -> A Partir de uma Pasta

Interface do Excel mostrando a aba 'Dados' com opções para obter dados de diferentes fontes, incluindo arquivo, banco de dados e outros serviços.

A seguir indicamos apenas o caminho da pasta…

Janela do Excel com a opção de pesquisa de pastas, mostrando a pasta chamada 'PASTA' com data de modificação e informações do arquivo.

E no ecrã que se segue conseguimos ver todos os ficheiros. No cenário visualizamos todos os ficheiros da pasta, incluindo ficheiros em subpastas.

Interface do Power Query mostrando uma lista de arquivos em uma pasta, incluindo arquivos CSV e PNG, com detalhes como data de acesso e modificação.

Este é o cenário comum, onde habitualmente devemos escolher qual a pasta específica que contem os ficheiros a combinar na Consulta. Ou seja, por outras palavras, devemos ir até ao nível da subpasta pretendida para obter os seus ficheiros.

No exemplo demonstro o método sem ir até à “subpasta” o que pode dificultar o processo de entendimento da lógica, mas é propositado!

Tabela exibindo arquivos em uma pasta com colunas para nome, extensão, data de criação, data de modificação e caminho da pasta, com alguns arquivos listados.

Podemos verificar que na Consulta, temos um conjunto de ficheiros, mas alguns deles estão incluídos numa subpasta dentro da estrutura. Como referido, executar a consulta desta forma, pode ser mais confuso no sentido de incluir ou não ficheiros que podemos não pretender.

Através da interface do utilizador, executamos estes passos e o código M gerado pela função Folder.Files que percorre automaticamente toda a árvore de subpastas. Esta opção é a pré-definida, e assim, como “boa prática” devemos ir até à pasta específica onde temos os ficheiros necessários para combinar.

Contudo existe outra função para obter os ficheiros de uma pasta – a função Folder.Contents.

  • Usamos a função Folder.Files quando pretendemos obter todos os ficheiros da pasta e das respetivas subpastas.
  • Usamos a função Folder.Contents quando pretendemos obter apenas os ficheiros e pastas existentes diretamente nessa pasta, controlando manualmente se queremos ou não navegar para níveis inferiores.

Quando usar a função Folder.Files

A função Folder.Files, como referido é a solução pré-definida quando realizamos a importação de dados de uma pasta através da interface de utilizador.

A função Folder.Files devolve uma linha por cada ficheiro localizado na pasta indicada e em todas as suas subpastas. Cada linha inclui propriedades do ficheiro e uma ligação ao respetivo conteúdo.

Captura de tela de uma planilha do Excel mostrando arquivos em uma pasta, com colunas para conteúdo, nome, extensão, data de acesso, data de modificação e caminho da pasta.

Podemos usar a função Folder.Files quando…

  1. Pretendemos consolidar todos os ficheiros de uma estrutura independentemente de haver subpastas ou não. Se todos os ficheiros tiverem uma estrutura semelhante, a função Folder.Files permite consolidá-los sem ter de indicar cada subpasta.
  2. As subpastas são apenas uma forma de organização. Se a localização exata do ficheiro não é importante e pretenderes importar tudo o que está “abaixo” da pasta principal, esta função é normalmente a melhor opção.
  3. Permitir a estrutura escalável. Se a estrutura da pasta crescer obtendo mais ficheiros, a consulta continua a encontrar os novos ficheiros diretamente.

Função Folder.Contents

Vamos agora através de código testar a função Folder.Contents.

Iniciamos uma nova consulta em branco e inserimos a função.

Interface do Power Query exibindo uma tabela com arquivos e seus status de validade, extensões e datas relacionados a uma pasta específica.
= Folder.Contents("C:\Users\joao_\Desktop\TUTORIAIS\13_2026 - FOLDER Power Query\Artigo\01 - Ficheiros\PASTA")

O resultado é uma consulta com uma linha para cada ficheiro e pasta encontrados diretamente no caminho indicado. Esta função não percorre automaticamente as subpastas.

Interface do Editor do Power Query mostrando o conteúdo de uma pasta, incluindo detalhes como nome, extensão, datas de acesso e modificação dos arquivos.

Devemos usar a função Folder.Contents quando…

  1. Queremos apenas os ficheiros da pasta atual. É a solução indicada para reduzir o âmbito para uma pasta especifica numa estrutura mais complexa.
  2. Necessitamos de controlar explicitamente a navegação, onde podemos por exemplo listar as pastas disponíveis, escolher uma pasta pelo seu nome, entrar ou navegar especificamente para uma pasta e ainda selecionar determinados ficheiros.
  3. Distinguir ficheiros de pastas. Neste caso a função é especialmente útil quando a estrutura da pasta contem um significado. No exemplo da imagem podemos verificar a linha 1, cujo conteúdo é uma tabela aninhada, e reparamos que não tem uma extensão, ou seja é uma pasta.

Podemos pensar nesta função do ponto de vista prático como se tivéssemos um arquivo, ou ficheiros de backup. Se os ficheiros forem incluídos numa subpasta, e não pretendemos incluí-los na consulta para combinar esta é a solução ideal, pois controlamos o que devemos importar.

Ficheiros indesejados

Tipicamente quando usamos a função Folder.Files podem aparecer ficheiros que não pretendemos como por exemplo:

  • ficheiros temporários;
  • cópias de segurança;
  • ficheiros ocultos;
  • ficheiros históricos;
  • extensões que não pretendemos importar;
  • ficheiros de estruturas diferentes;
  • ficheiros existentes em subpastas técnicas

Sendo neste caso a opção pela função Folder.Contents uma opção mais recomendada. A função Folder.Files pode também tornar-se “mais pesada” quando a pasta principal contém milhares de ficheiros, muitos níveis de sub-pastas, e /ou ficheiros desnecessários para a consulta.

Com estas 2 funções apresento-te as alternativas válidas para importares ficheiros diretamente de uma pasta sem necessitares de recorrer à interface do utilizador, podendo sempre ter mais controlo sobre os teus dados conforme o teu objetivo.

Na maioria dos cenários de combinação automática de ficheiros, a função Folder.Files é a escolha mais simples. Se pretenderes ter mais controlo, usas a função Folder.Contents. Sabendo exatamente a fronteira ou limite real dos dados que pretendes importar, podes escolher então a função adequada para ti.

Próximo artigo:

Artigo Anterior:


Comentários

Leave a Reply

Discover more from Exceldriven

Subscribe now to keep reading and get access to the full archive.

Continue reading