Correcoes recursividade
This commit is contained in:
@@ -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}")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user