Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tkinter as tk
- from tkinter import filedialog, messagebox
- import os
- import shutil
- from datetime import datetime
- import threading
- import win32gui
- import win32con
- def esconder_janela_terminal():
- janela_terminal = win32gui.GetForegroundWindow()
- win32gui.ShowWindow(janela_terminal, win32con.SW_MINIMIZE)
- def copiar_arquivos(origem, destino, tipos_arquivos):
- esconder_janela_terminal()
- if not origem:
- return
- if not os.path.exists(destino):
- os.makedirs(destino)
- def copiar():
- for arquivo in os.listdir(origem):
- caminho_arquivo = os.path.join(origem, arquivo)
- if os.path.isfile(caminho_arquivo): # Verifica se é um arquivo
- if tipos_arquivos == "Imagens" and (arquivo.endswith(".jpg") or arquivo.endswith(".png") or arquivo.endswith(".webp")):
- copiar_arquivo(caminho_arquivo, destino)
- elif tipos_arquivos == "Vídeos" and (arquivo.endswith(".mp4") or arquivo.endswith(".avi") or arquivo.endswith(".mkv") or arquivo.endswith(".webm") or arquivo.endswith(".mov")):
- copiar_arquivo(caminho_arquivo, destino)
- elif tipos_arquivos == "Todos":
- copiar_arquivo(caminho_arquivo, destino)
- messagebox.showinfo("Sucesso", "Os arquivos foram copiados com sucesso.")
- thread = threading.Thread(target=copiar)
- thread.start()
- def copiar_arquivo(origem, destino):
- data_criacao = datetime.fromtimestamp(os.path.getctime(origem))
- pasta_destino = os.path.join(destino, data_criacao.strftime('%d-%m-%Y'))
- if not os.path.exists(pasta_destino):
- os.makedirs(pasta_destino)
- shutil.copy(origem, pasta_destino)
- def selecionar_destino():
- destino = filedialog.askdirectory(title="Selecione a pasta de destino")
- if destino:
- salvar_caminho(destino)
- texto_caminho.config(text="Caminho de Destino: " + destino)
- def copiar_usando_caminho_salvo():
- caminho_destino = carregar_caminho()
- origem = filedialog.askdirectory(title="Selecione a pasta de origem")
- if origem:
- tipos_arquivos = var_tipo_arquivos.get()
- copiar_arquivos(origem, caminho_destino, tipos_arquivos)
- def salvar_caminho(caminho):
- with open("caminho_destino.txt", "w") as arquivo:
- arquivo.write(caminho)
- def carregar_caminho():
- if os.path.exists("caminho_destino.txt"):
- with open("caminho_destino.txt", "r") as arquivo:
- return arquivo.read().strip()
- return ""
- def abrir_explorador():
- caminho = carregar_caminho()
- if not caminho or not os.path.exists(caminho):
- caminho = os.getcwd() # Diretório atual
- os.startfile(caminho)
- janela = tk.Tk()
- janela.title("Backup de Arquivos - ver.3")
- largura = 400
- altura = 300
- largura_tela = janela.winfo_screenwidth()
- altura_tela = janela.winfo_screenheight()
- x = (largura_tela/2) - (largura/2)
- y = (altura_tela/2) - (altura/2)
- janela.geometry('%dx%d+%d+%d' % (largura, altura, x, y))
- botao_destino = tk.Button(janela, text="Selecionar Destino", command=selecionar_destino)
- botao_destino.pack(pady=10)
- var_tipo_arquivos = tk.StringVar()
- var_tipo_arquivos.set("Todos")
- frame_tipos_arquivos = tk.LabelFrame(janela, text="Tipos de Arquivos")
- frame_tipos_arquivos.pack(pady=10)
- tk.Radiobutton(frame_tipos_arquivos, text="Imagens", variable=var_tipo_arquivos, value="Imagens").pack(anchor=tk.W)
- tk.Radiobutton(frame_tipos_arquivos, text="Vídeos", variable=var_tipo_arquivos, value="Vídeos").pack(anchor=tk.W)
- tk.Radiobutton(frame_tipos_arquivos, text="Todos", variable=var_tipo_arquivos, value="Todos").pack(anchor=tk.W)
- botao_copiar = tk.Button(janela, text="Selecionar pasta de origem", command=copiar_usando_caminho_salvo)
- botao_copiar.pack(pady=10)
- botao_info = tk.Button(janela, text="Abrir pasta de arquivos", command=abrir_explorador, justify=tk.LEFT, fg="blue", cursor="hand2")
- botao_info.pack(pady=10)
- texto_caminho = tk.Label(janela, text="Caminho de Destino: " + carregar_caminho(), justify=tk.LEFT)
- texto_caminho.pack(pady=10)
- janela.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement