|
3 | 3 | import tkinter as tk |
4 | 4 | from tkinter import filedialog |
5 | 5 |
|
| 6 | + |
6 | 7 | class file_sorter: |
7 | 8 | def __init__(self, root): |
8 | 9 | self.root = root |
9 | 10 | self.root.title("File Sorter") |
10 | 11 | self.root.configure(bg="#333") |
11 | | - |
12 | | - self.select_button = tk.Button(root, text="Select Directory", command=self.select_directory, bg="#555", fg="white") |
| 12 | + |
| 13 | + self.select_button = tk.Button( |
| 14 | + root, text="Select Directory", command=self.select_directory, bg="#555", fg="white") |
13 | 15 | self.select_button.pack(pady=10) |
14 | | - |
15 | | - self.sort_button = tk.Button(root, text="Sort Files", command=self.sort_files, bg="#555", fg="white") |
| 16 | + |
| 17 | + self.sort_button = tk.Button( |
| 18 | + root, text="Sort Files", command=self.sort_files, bg="#555", fg="white") |
16 | 19 | self.sort_button.pack(pady=5) |
17 | | - |
| 20 | + |
18 | 21 | self.status_label = tk.Label(root, text="", bg="#333", fg="white") |
19 | 22 | self.status_label.pack(pady=10) |
20 | | - |
| 23 | + |
21 | 24 | def select_directory(self): |
22 | 25 | self.dir_path = filedialog.askdirectory() |
23 | 26 | self.status_label.config(text="Selected directory: " + self.dir_path) |
24 | | - |
| 27 | + |
25 | 28 | def sort_files(self): |
26 | 29 | if hasattr(self, "dir_path"): |
27 | 30 | for filename in os.listdir(self.dir_path): |
28 | 31 | if os.path.isfile(os.path.join(self.dir_path, filename)): |
29 | 32 | ext = filename.split(".")[-1] |
30 | 33 | target_dir = os.path.join(self.dir_path, ext) |
31 | | - |
| 34 | + |
32 | 35 | if not os.path.exists(target_dir): |
33 | 36 | os.makedirs(target_dir) |
34 | | - |
| 37 | + |
35 | 38 | source_path = os.path.join(self.dir_path, filename) |
36 | 39 | target_path = os.path.join(target_dir, filename) |
37 | | - |
| 40 | + |
38 | 41 | shutil.move(source_path, target_path) |
39 | | - |
| 42 | + |
40 | 43 | self.status_label.config(text="Files sorted successfully.") |
41 | 44 | else: |
42 | 45 | self.status_label.config(text="Please select a directory first.") |
43 | 46 |
|
| 47 | + |
44 | 48 | if __name__ == "__main__": |
45 | 49 | root = tk.Tk() |
46 | 50 | app = file_sorter(root) |
47 | 51 | root.mainloop() |
48 | | - |
|
0 commit comments