# scanner.py # Funções para ler diretórios e listar ficheiros from pathlib import Path def listar_ficheiros( origem: str = ".", incluir_ocultos: bool = True, extensoes: list[str] | None = None ) -> list: """ Percorrer recursivamente a pasta de origem e devolver lista de caminhos completos dos ficheiros. versão Pathlib """ caminho_origem = Path(origem) if not caminho_origem.exists(): raise FileNotFoundError(f"Erro: a pasta '{origem}' não existe.") if not caminho_origem.is_dir(): raise NotADirectoryError( f"Erro: o caminho '{origem}' não é um directório.") ficheiros = [str(item) for item in caminho_origem.rglob("*") if item.is_file()] if not incluir_ocultos: ficheiros = [f for f in ficheiros if not Path(f).name.startswith(".")] if extensoes: extensoes = [ ext.lower() if ext.startswith(".") else f".{ext.lower()}" for ext in extensoes ] ficheiros = [f for f in ficheiros if Path( f).suffix.lower() in extensoes] return ficheiros