31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
# 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
|