Correcoes recursividade

This commit is contained in:
HalbeBruno
2026-02-19 08:21:06 -03:00
parent 68e6be88c9
commit 60a5763cf4

View File

@@ -98,7 +98,7 @@ def listar_subdiretorios_usuarios(logger):
return subdiretorios return subdiretorios
def processar_arquivos_antigos(usuario, logger): def processar_arquivos_antigos(usuario, logger):
"""Move arquivos antigos do diretório do usuário para a pasta de arquivamento.""" """Move arquivos antigos do diretório do usuário para a pasta de arquivamento recursivamente."""
origem = os.path.join(DIRETORIO_BASE, usuario) origem = os.path.join(DIRETORIO_BASE, usuario)
destino_base = os.path.join(DIR_ANTIGOS, usuario) destino_base = os.path.join(DIR_ANTIGOS, usuario)
@@ -108,28 +108,31 @@ def processar_arquivos_antigos(usuario, logger):
arquivos_movidos = 0 arquivos_movidos = 0
try: try:
destino_criado = False for root, dirs, files in os.walk(origem):
caminho_relativo = os.path.relpath(root, origem)
diretorio_destino = os.path.join(destino_base, caminho_relativo)
for arquivo in os.listdir(origem): for arquivo in files:
caminho_arquivo = os.path.join(origem, arquivo) caminho_arquivo = os.path.join(root, arquivo)
if not os.path.isfile(caminho_arquivo):
continue
_, ext = os.path.splitext(arquivo) _, ext = os.path.splitext(arquivo)
if ext.lower() in [e.lower() for e in EXTENSOES_IGNORAR]: if ext.lower() in [e.lower() for e in EXTENSOES_IGNORAR]:
continue continue
try:
idade = idade_arquivo_dias(caminho_arquivo) idade = idade_arquivo_dias(caminho_arquivo)
if idade > DIAS_MOVER: if idade > DIAS_MOVER:
if not destino_criado: os.makedirs(diretorio_destino, exist_ok=True)
os.makedirs(destino_base, exist_ok=True)
destino_criado = True
shutil.move(caminho_arquivo, os.path.join(destino_base, arquivo)) destino_arquivo = os.path.join(diretorio_destino, arquivo)
logger.info(f"Movido: {usuario}/{arquivo} ({idade} dias) -> {destino_base}") shutil.move(caminho_arquivo, destino_arquivo)
caminho_log = arquivo if caminho_relativo == "." else os.path.join(caminho_relativo, arquivo)
logger.info(f"Movido: {usuario}/{caminho_log} ({idade} dias) -> {diretorio_destino}")
arquivos_movidos += 1 arquivos_movidos += 1
except Exception as e:
logger.error(f"Erro ao processar arquivo {caminho_arquivo}: {e}")
except Exception as e: except Exception as e:
logger.error(f"Erro ao processar usuário {usuario}: {e}") logger.error(f"Erro ao processar usuário {usuario}: {e}")
@@ -150,7 +153,6 @@ def limpar_arquivos_antigos(logger):
for file in files: for file in files:
caminho_arquivo = os.path.join(root, file) caminho_arquivo = os.path.join(root, file)
# Verificar extensão ignorada
_, ext = os.path.splitext(file) _, ext = os.path.splitext(file)
if ext.lower() in [e.lower() for e in EXTENSOES_IGNORAR]: if ext.lower() in [e.lower() for e in EXTENSOES_IGNORAR]:
continue continue
@@ -168,7 +170,7 @@ def limpar_arquivos_antigos(logger):
for root, dirs, files in os.walk(DIR_ANTIGOS, topdown=False): for root, dirs, files in os.walk(DIR_ANTIGOS, topdown=False):
for name in dirs: for name in dirs:
caminho_dir = os.path.join(root, name) caminho_dir = os.path.join(root, name)
if not os.listdir(caminho_dir): # Se estiver vazio if not os.listdir(caminho_dir):
os.rmdir(caminho_dir) os.rmdir(caminho_dir)
logger.debug(f"Removido diretório vazio: {caminho_dir}") logger.debug(f"Removido diretório vazio: {caminho_dir}")