import os
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
# Tạo một cửa sổ tkinter
window = tk.Tk()
window.title("Chọn thư mục")
# Tạo hai biến để lưu loại file và tên thư mục data
file_type = tk.StringVar()
data_name = tk.StringVar()
# Hàm để chọn thư mục và chuyển file theo loại
def choose_dir():
# Lấy giá trị của hai biến file_type và data_name
ext = file_type.get()
name = data_name.get()
# Nếu người dùng không nhập loại file hoặc tên thư mục data
if not ext or not name:
# Hiển thị thông báo lỗi và dừng hàm
messagebox.showerror("Lỗi", "Bạn cần nhập loại file và tên thư mục data muốn chuyển")
return
# Hiển thị hộp thoại chọn thư mục
dir = filedialog.askdirectory()
# Nếu người dùng chọn một thư mục
if dir:
# Tạo thư mục data nếu chưa có
os.makedirs(os.path.join(dir, name), exist_ok=True)
# Duyệt qua tất cả các file trong thư mục và các thư mục con
for root, dirs, files in os.walk(dir):
# Duyệt qua tất cả các file trong thư mục hiện tại
for file in files:
# Nếu file có định dạng theo yêu cầu
if file.endswith(ext):
# Lấy đường dẫn đầy đủ của file
src = os.path.join(root, file)
# Lấy đường dẫn đầy đủ của thư mục data
dst = os.path.join(dir, name, file)
# Chuyển file vào thư mục data và ghi đè nếu có trùng tên
os.rename(src, dst)
# Hiển thị thông báo hoàn thành
messagebox.showinfo("Hoàn thành", f"Đã chuyển tất cả các file {ext} vào thư mục {name}")
# Tạo các label và entry để nhập loại file và tên thư mục data
tk.Label(window, text="Loại file:").grid(row=0, column=0)
tk.Entry(window, textvariable=file_type).grid(row=0, column=1)
tk.Label(window, text="Tên thư mục data:").grid(row=1, column=0)
tk.Entry(window, textvariable=data_name).grid(row=1, column=1)
# Tạo nút để chọn thư mục và chuyển file theo loại
tk.Button(window, text="Chọn thư mục", command=choose_dir).grid(row=2, columnspan=2)
# Chạy giao diện tkinter
window.mainloop()